如何让机器人在不使用命令的情况下向特定频道中的特定公会发送消息

Posted

技术标签:

【中文标题】如何让机器人在不使用命令的情况下向特定频道中的特定公会发送消息【英文标题】:How do you make a bot send a message to an specific guild in a specific channel without using commands 【发布时间】:2019-01-31 09:07:03 【问题描述】:

有人可以帮助我吗?我只是想让机器人在不请求的情况下向指定的频道发送消息,消息应该每 x 分钟发送一次,但我只想知道如何发送。

【问题讨论】:

欢迎来到 ***。到目前为止,您尝试过什么? 【参考方案1】:

您可以使用Client.guilds(客户所属的所有公会列表)和Guild.channels(公会拥有的所有频道列表)。 要指定公会和频道,您可以使用他们的 ID:如果您在 Discord 中启用开发者模式(在用户设置 > 外观 > 高级下),您可以右键单击复制公会、频道、用户等的 ID。 获得 ID 后,您可以使用 Collection.get() 获取它们。或者,您可以按名称.find() 他们,但这并不理想,因为名称可以更改。

这是一个例子:

let guild = client.guilds.get('your guild ID as a string here'), // returns a Guild or undefined
  channel; 

if (guild) 
  channel = guild.channels.get('your channel ID as a string here');
  if (channel) setInterval(() => channel.send("Here you can put the message and stuffs.");, 10 * 60 * 1000);
  else console.log("There's no channel with that ID."),
 else console.log("There's no guild with that ID.");

这只是核心概念,你显然可以修改它。

【讨论】:

【参考方案2】:

let guild = client.guilds.cache.get('your guild ID as a string here'), // 返回 Guild 或 undefined 频道;

如果(公会) channel = guild.channels.cache.get('你的频道 ID 在这里作为字符串'); if (channel) setInterval(() => channel.send("这里可以放消息和东西。");, 10 * 60 * 1000); else console.log("没有该 ID 的频道。"), else console.log("没有那个ID的公会");

【讨论】:

你好,如果你的代码包含一些代码,你可以使用markdown格式的文本,请查看链接,markdown getting started & markdown cheat sheet 您的答案可以通过额外的支持信息得到改进。请edit 添加更多详细信息,例如引用或文档,以便其他人可以确认您的答案是正确的。你可以找到更多关于如何写好答案的信息in the help center。

以上是关于如何让机器人在不使用命令的情况下向特定频道中的特定公会发送消息的主要内容,如果未能解决你的问题,请参考以下文章

我可以在不加入 IRC 频道的情况下向它发送消息吗?

如何在不使用 Firebase Cloud Messaging 控制台的情况下向 Flutter/Firebase Cloud Messaging 上的特定设备发送通知 [重复]

在不创建新视图或知道特定父视图的情况下向 UIButton 类添加约束

Discord 脚本可在朋友不在频道中的情况下向他们发送私人消息

Discord.js - 允许特定频道中的命令[关闭]

在不知道架构名称的情况下向组角色添加权限