我已经看到了很多,当他们加入有一个问候消息的僵尸。 其通常被发送到服务器的第一个信道。
例如:
机器人加入公会
机器人:嘿! 谢谢你邀请我!
代码中,我现在所拥有的是非常简单的:
client.on("guildCreate", guild => {
the code goes here
});
我不知道如何将消息发送到一个随机的(第一)通道,虽然。 如果任何人都可以请告诉我其他的机器人怎么做,我会很感激。
我已经看到了很多,当他们加入有一个问候消息的僵尸。 其通常被发送到服务器的第一个信道。
例如:
机器人加入公会
机器人:嘿! 谢谢你邀请我!
代码中,我现在所拥有的是非常简单的:
client.on("guildCreate", guild => {
the code goes here
});
我不知道如何将消息发送到一个随机的(第一)通道,虽然。 如果任何人都可以请告诉我其他的机器人怎么做,我会很感激。
我使用Discord.js版本11.4.2,我能使用下面的代码发送默认消息到#通用通道。 更换bot
下面不管你的client
的名字叫。
const Discord = require('discord.js');
const bot = new Discord.Client();
bot.on("guildCreate", guild => {
let channelID;
let channels = guild.channels;
channelLoop:
for (let c of channels) {
let channelType = c[1].type;
if (channelType === "text") {
channelID = c[0];
break channelLoop;
}
}
let channel = bot.channels.get(guild.systemChannelID || channelID);
channel.send(`Thanks for inviting me into this server!`);
});
编辑:我发现guild.systemChannelID
可以为null
,所以我已经更新的代码搜索的第一个文本通道和使用,对于初始消息。
坦率地说,没有“好办法”待办事项这......曾经有不和谐之前删除它。 (曾经是: guild.defaultChannel
)
现在天BOT开发者做一些测试,以找出他们发送消息...
有多种方法待办事项找到一个很好的渠道(这里的几个):
welcome
或general
无论你喜欢机器人将其发送到。 guild.channels.find(`name`,`welcome`).send(`Thx for invite`);
guild.channels.sort(function(chan1,chan2){
if(chan1.type!==`text`) return 1;
if(!chan1.permissionsFor(guild.me).has(`SEND_MESSAGES`)) return -1;
return chan1.position < chan2.position ? -1 : 1;
}).first().send(`Thx! for invite`);
上面的代码做到这一点:
return -1
return -1
查找通道在服务器大多数成员可以发送到
找到一个通道的作用@everyone可以向guild.roles.first()
查找得到最多的活动的通道 (检查与过去5-10分钟发送的最多消息频道)