【发布时间】:2021-01-25 13:15:26
【问题描述】:
我正在编写一个不和谐的机器人,但我在其中一个主要功能上遇到了问题 - 欢迎信息。
我尝试了几种方法,但都没有奏效,除了一种:the one that needs a channel ID。
我不想使用这种方法,因为我想在多台服务器上使用我的机器人,这意味着我必须更改每台服务器的代码 - 我真的不想这样做。
client.on('guildMemberAdd', function(message) {
member.guild.channels.cache.get('MY CHANNEL ID').send('welcome dadadadada');
});
这段代码有效(实际上,我只是尝试过,但它没有 - 但它确实有效。就像那样)。现在我正在尝试更“高级”的编码来告诉机器人自动从#general获取频道ID(为此我做了npm install long)
const getDefaultChannel = (guild) => {
if(guild.channel.has(guild.id))
return guild.channels.get(guild.id)
const generalChannel = guild.channels.find(channel => channel.name === 'general');
if (generalChannel)
return generalChannel;
return guild.channels
.filter(c => c.type === 'text' &&
c.permissionsFor(guild.client.user).has('SEND_MESSAGES'))
.sort((a, b) => a.position - b.position) ||
Long.fromString(a.id).sub(Long.fromString(b.id)).toNumber()
.first();
}
client.on("guildMemberAdd", member => {
const channel = getDefaultChannel(member.guild);
channel.send(`Welcome ${member} to the server, wooh!`);
});
我没有发现任何有用的东西,我不知道该怎么办。另外,英语不是我的第一语言。
我还能尝试什么?谢谢。
【问题讨论】:
-
如果我理解正确,您想将欢迎消息发送到公会的频道。公会对象有一个名为
systemChannelID的东西。这就是您收到不和谐欢迎消息的频道,“嘿,我们希望你带来了披萨”等。 -
您使用的是 v11.x 吗?您当前的方法是否有任何错误?究竟出了什么问题?
-
@WorthyAlpaca 我会看看我能用这些信息做什么,谢谢
-
@Lioness100 我收到“无法读取属性 - 未定义”类型的错误(我将编辑问题并添加错误),但我正在寻找一种方法, 不是对错误的修复,因为该代码对我不起作用,但无论如何,也感谢您的回复(很可能是我拼错了什么或说错了什么,我很抱歉)
标签: javascript node.js discord discord.js bots