【问题标题】:How send a message with a Discord Bot in C#?如何在 C# 中使用 Discord Bot 发送消息?
【发布时间】:2020-08-31 11:32:39
【问题描述】:

我正在尝试了解如何在没有我发送任何事件或命令的情况下使用 Discord Bot 将消息发送到我的频道?

我想要达到的结果是通过一个计时器机器人你每分钟在聊天中发送一条消息。

如果你能用一些例子给我解释一下,我将非常感谢你

【问题讨论】:

    标签: c# bots discord


    【解决方案1】:

    有多种方法可以在不使用命令的情况下将消息发送到通道中。本质上,您是在问如何从不继承自 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 的方法配置为服务。

    【讨论】:

    • 感谢您的解释我看到任何创建机器人的人都使用“控制台应用程序”,但不能使用“Windows 窗体应用程序”?因为我正在尝试创建一个使用 Form 应用程序执行计算等的机器人。并在 Discord 聊天中向我发送这些数据,但我不清楚它是否真的可能以及如何去做。如果您有任何示例,我将非常感谢您。
    猜你喜欢
    • 2020-08-16
    • 2019-08-23
    • 2020-12-01
    • 2021-03-02
    • 2021-01-12
    • 2021-06-05
    • 2021-06-17
    • 2020-12-03
    • 2021-09-17
    相关资源
    最近更新 更多