javascript - 使用 discord.js 在第一个频道发送消息
问题描述
我见过很多机器人在加入时都会收到问候消息。它通常发送到服务器的第一个通道。
例如:
bot加入公会
博特:嘿!谢谢你邀请我!
我现在拥有的代码非常简单:
client.on("guildCreate", guild => {
the code goes here
});
我不知道如何将消息发送到随机(第一个)频道。如果有人能告诉我其他机器人是如何做到的,我会非常感激。
解决方案
编辑:截至 2020 年 9 月 27 日,使用 Discord.js 版本 12.3.1,我只需要添加一个引用即可cache
获得正确的频道并确保迭代正确进行。
我使用的是 Discord.js 版本 11.4.2,并且能够使用以下代码向 #general 频道发送默认消息。用您的名字替换bot
下面的内容。client
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!`);
});
编辑:我发现guild.systemChannelID
可以,null
所以我更新了代码以搜索第一个文本通道并将其用于初始消息。
推荐阅读
- javascript - 用户登陆页面时如何显示弹出窗口 - Javascript
- amazon-web-services - AWS、Elasticsearch、Filebeat:将索引策略应用于索引模式而不是特定索引
- windows - 哪些是预装的 PowerShell 模块以及为什么机器中可能缺少 cmdlet?
- php - 使用 php 7.1 在 Ubuntu 14.04.2 LTS 上安装 php-imap
- php - 在 Google Cloud Storage Bucket 中运行 PHP
- android - ConnectivityManager 只能检测连接性,但不能检测网络可用性
- ios - 如何以最快的方式检查我的 nsarray 是否包含另一个 nsarray 元素 IOS
- python - 绘制歌曲中每个独特声音循环的时间范围,使用 python Librosa 按声音相似度对行进行排序
- .net - web.config .net 中的#{variable name} 是什么
- python - AttributeError: 'list' 对象没有属性 'lower' - Sklearn