在SocketMessages上查找澄清并在服务器bot中侦听通道属于



所以我有一个相当广泛的discord.net bot。bot部分实际上只是发布消息的地方,但最终它会查询多个公共API,反序列化JSON响应,然后我用结果数据执行各种任务。

所有这些都运行得很好,事实上,它发布到了正确的频道,我可以为返回的数据交换参数等。机器人程序的目的只是发布信息,因为它是从4个具有公共、可查询API的站点的组合中更新的。但这个问题只适合游移不定的人。

我基本上是为了一个简单的测试镜像这个代码:

private static Task ClientOnMessageReceived(SocketMessage arg)
{
if (arg.Content.StartsWith("!helloworld"))
{
arg.Channel.SendMessageAsync("Message Response");
}

现在,问题是,如果我发送相同的!helloworld在一个通道中,机器人可以访问,但它不会响应它。如果我@my bot,它不会响应。它只会响应,甚至指示它正在侦听DM。为什么?SocketMessage对象是否仅适用于DM?如果是这样的话,我该如何收听特定服务器上的文本频道,并在任何人说"!helloworld,这个用途不是我需要的机器人。我只是想了解我缺少了什么。理想情况下,我想看看是否有人说了一个时髦的短语,这样我就可以为了好玩而抛出一个更时髦的回答,然而,即使只是在我的测试中,我也无法理解。

因此,任何帮助都将不胜感激,我认为我对这个图书馆有很好的了解,但我只是没有把这件事联系起来。

我在这里登录了discord开发人员,然后添加了特权网关意图>启用了此功能和消息内容意图。然后,在初始化我的discord套接字之前,我将以下内容添加到我的代码中:

public static DiscordSocketConfig config = new DiscordSocketConfig() {
GatewayIntents = GatewayIntents.All };
private readonly DiscordSocketClient _client = new DiscordSocketClient(config);

由于这个机器人实际上是为我自己和我的朋友准备的,我不需要担心100服务器的阈值,除非人们开始问我如何在我的服务器上发布所有这些很酷的交易历史和活跃的交易!谢谢

最新更新