无法让我随机的欢迎信息在不和谐中工作



我正在尝试建立我自己的不和谐机器人,这是非常有趣的,但很难建立我自己的小数组来设置多个欢迎消息,所以当有人加入时,他们会随机得到这些消息之一。

下面是我当前的代码:

module.exports = ('guildMemberAdd', (member) => {
const channel = member.guild.channels.cache.find(ch => ch.name === 'bot-testing');
if (!channel) return;
var messages = [
"Welcome to Take My Sword '${member}', test 1",
"Welcome to Take My Sword '${member}', test 2",
"Welcome to Take My Sword '${member}', test 3",
"Welcome to Take My Sword '${member}', test 4",
"Welcome to Take My Sword '${member}', test 5"
];
var messages = Math.floor(Math.random() * messages.length);

channel.send(messageArray[rando]); 
});

我收到的错误信息是:

/home/discord-bot/events/member/guildMemberAdd.js:2
const channel = member.guild.channels.cache.find(ch => ch.name === 'bot-testing');
^
TypeError: Cannot read property 'channels' of undefined
at module.exports (/home/discord-bot/events/member/guildMemberAdd.js:2:31)
at Client.emit (events.js:315:20)
at Object.module.exports [as GUILD_MEMBER_ADD] (/home/discord-bot/node_modules/discord.js/src/client/websocket/handlers/GUILD_MEMBER_ADD.js:16:14)
at WebSocketManager.handlePacket (/home/discord-bot/node_modules/discord.js/src/client/websocket/WebSocketManager.js:384:31)
at WebSocketShard.onPacket (/home/discord-bot/node_modules/discord.js/src/client/websocket/WebSocketShard.js:444:22)
at WebSocketShard.onMessage (/home/discord-bot/node_modules/discord.js/src/client/websocket/WebSocketShard.js:301:10)
at WebSocket.onMessage (/home/discord-bot/node_modules/ws/lib/event-target.js:132:16)
at WebSocket.emit (events.js:315:20)
at Receiver.receiverOnMessage (/home/discord-bot/node_modules/ws/lib/websocket.js:825:20)
at Receiver.emit (events.js:315:20)

我的朋友谁一直在帮助我说,试着改变第一行,(成员)到(客户端,成员),当我这样做,我只是得到这个错误信息,而不是:

/home/discord-bot/events/member/guildMemberAdd.js:16
channel.send(messageArray[rando]);
^
ReferenceError: messageArray is not defined
at module.exports (/home/discord-bot/events/member/guildMemberAdd.js:16:15)
at Client.emit (events.js:315:20)
at Object.module.exports [as GUILD_MEMBER_ADD] (/home/discord-bot/node_modules/discord.js/src/client/websocket/handlers/GUILD_MEMBER_ADD.js:16:14)
at WebSocketManager.handlePacket (/home/discord-bot/node_modules/discord.js/src/client/websocket/WebSocketManager.js:384:31)
at WebSocketShard.onPacket (/home/discord-bot/node_modules/discord.js/src/client/websocket/WebSocketShard.js:444:22)
at WebSocketShard.onMessage (/home/discord-bot/node_modules/discord.js/src/client/websocket/WebSocketShard.js:301:10)
at WebSocket.onMessage (/home/discord-bot/node_modules/ws/lib/event-target.js:132:16)
at WebSocket.emit (events.js:315:20)
at Receiver.receiverOnMessage (/home/discord-bot/node_modules/ws/lib/websocket.js:825:20)
at Receiver.emit (events.js:315:20)
[nodemon] app crashed - waiting for file changes before starting...

可以理解的是,数组可能完全编码错误,但不幸的是,我没有先进的知识,能够自己修复它,所以这就是为什么我决定在这里问!

机器人可以写/发布到那个房间等,我试图做测试,所以我知道它不是权限,我确实有一个单一的欢迎消息工作得很好,我只是想尝试一个数组与多个欢迎消息,并在加入他们得到一个随机有多少我决定做。

任何帮助将是非常感激的,即使它只是一个链接,以指导更好地理解构建数组。

亲切的问候。

詹姆斯。

您的第一个错误出现在第2行,您可以在第一行看到:

/home/discord-bot/events/member/guildMemberAdd.js:2

你已经解决了这个问题,所以现在不用担心。

第二个错误在第16行,提到没有定义一个名为messageArray的变量。看看你的代码,这是真的。您声明了两次名为messages的变量,因此首先将第二个变量重命名为rando。这样,您将拥有一个包含所有消息的变量和一个包含用于选择消息的随机数的变量。

一旦你修复了第16行使用正确的变量名,那将是消息和随机的。

应该是这样的:

var messages = [
"Welcome to Take My Sword '${member}', test 1",
"Welcome to Take My Sword '${member}', test 2",
"Welcome to Take My Sword '${member}', test 3",
"Welcome to Take My Sword '${member}', test 4",
"Welcome to Take My Sword '${member}', test 5"
];
var rando = Math.floor(Math.random() * messages.length);
channel.send(messages[rando]); 

相关内容

最新更新