如何在没有上下文的DSharp+中创建DiscordChannel实体



我想让我的Discord bot在启动时使用Discord message Builder发送消息,但.sendAsync((需要DiscordChannel实体。我读过的所有指南都使用上下文,但除非我回复消息,否则我不能使用上下文,这是我做不到的

static async Task Send(string text)
{
var msg = await new DiscordMessageBuilder()
.WithContent(text)
.SendAsync();
}

我不知道你所说的启动是什么意思,但我写了一个解决方案,当机器人加入服务器时应该发送消息时,它就可以工作。

起初,你的机器人需要一个特殊的意图,你可以将其添加到你的DiscordConfiguration 中

Intents = DiscordIntents.Guilds

在这个步骤之后,你可以创建一个事件处理程序,当你的机器人加入公会时会触发。eventarguments提供了公会,您可以获得服务器的默认通道。

事件处理程序:

Client.GuildCreated += OnGuildCreated;

事件功能:

private void OnGuildCreated(object sender, GuildCreateEventArgs e)
{
DiscordChannel defaultChannel =  e.Guild.GetDefaultChannel();
defaultChannel.SendMessageAsync("Your text / message");
}

我希望我正确理解了你的问题。

编辑:该解决方案仅显示如何获取通道。如果默认通道不能/不应该被占用,你也可以使用Guild.Channels获取服务器的所有通道。

相关内容

  • 没有找到相关文章

最新更新