[英]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.