如何在C#中使用Discord Bot发送消息?

时间:2020-05-14 19:20:15

标签: c# bots discord

我试图了解如何在不发送任何事件或命令的情况下将Discord Bot的消息发送到我的频道中?

我想要实现的结果是,通过计时器bot,您每分钟在聊天中发送一条消息。

如果您能通过一些例子向我解释一下,我将非常感谢您

1 个答案:

答案 0 :(得分:0)

有多种不使用命令将消息发送到通道的方法。本质上,您是在问如何从不继承自ModuleBase的类中发送消息。

这要求您使用依赖注入将DiscordSocketClient注入到您要从中发送消息的类中。

您可以在Discord.Net提供的official documentationexample bot(假设您正在使用此库)中了解有关依赖注入的更多信息,因为这是一个很大的主题。

简单的解决方案如下所示。

public class MyClass
{
    private readonly DiscordSocketClient _client;
    public MyClass(DiscordSocketClient client) => client = client 

    public async Task SendMessageToChannel(ulong channelId, string message)
    {
        SocketChannel channel = _client.GetChannel(channelId);
        await (channel as IMessageChannel).SendMessageAsync(message);
    }
} 

理想情况下,您还应该创建一个名为IMyClass的接口并让MyClass实现它。这样,您也可以有效地将MyClass的方法配置为服务。