使用 discord.js 向第一个频道发送消息

eje*_*jer 3 javascript discord discord.js

我见过很多机器人在加入时都有问候语。它通常发送到服务器的第一个通道。

例如:

机器人加入公会

机器人:喂!谢谢你邀请我!

我现在的代码非常简单:

client.on("guildCreate", guild => {
    the code goes here
});
Run Code Online (Sandbox Code Playgroud)

我不知道如何向随机(第一个)频道发送消息。如果有人能告诉我其他机器人是如何做到的,我会非常感激。

Mar*_*ons 6

编辑:截至 2020 年 9 月 27 日,使用 Discord.js 版本 12.3.1,我只需要添加对 的引用cache即可获得正确的频道并确保迭代正确进行。

我使用的是 Discord.js 版本 11.4.2,并且能够使用以下代码向#general 频道发送默认消息。用botclient的名字替换下面的内容。

const Discord = require('discord.js');
const bot = new Discord.Client();

bot.on("guildCreate", guild => {
    let channelID;
    let channels = guild.channels.cache;

    channelLoop:
    for (let key in channels) {
        let c = channels[key];
        if (c[1].type === "text") {
            channelID = c[0];
            break channelLoop;
        }
    }

    let channel = guild.channels.cache.get(guild.systemChannelID || channelID);
    channel.send(`Thanks for inviting me into this server!`);
});
Run Code Online (Sandbox Code Playgroud)

编辑:我发现guild.systemChannelID可以,null所以我更新了代码以搜索第一个文本频道并将其用于初始消息。