簡體   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