繁体   English   中英

Discord.js 中的欢迎信息

[英]Welcome message in Discord.js

我正在编写一个不和谐的机器人,但我在主要功能之一 - 欢迎消息中遇到了问题。
我尝试了几种方法,但没有一种方法有效,除了一种: 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!`);
});

我没有发现任何有用的东西,我不知道该怎么做。 此外,英语不是我的第一语言。

我还能尝试什么? 谢谢你。

我想这可以帮助你!

guildMemberAdd 监听器可以发送消息

client.on('guildMemberAdd', function(member, message) => {
  let generalChannelName = message.guild.channels.find(channel => channel.name === 'general');
  let generalChannel = generalChannel.id;

  generalChannel.send(`Welcome ${member.tag} to the server!`);
});

很难在这里插入您的过滤器,这对您有帮助吗?

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM