[英]Discord bot c# get userinfo (without parameter)and send back message
[英]How send a message with a Discord Bot in C#?
我试图了解如何在没有我发送任何事件或命令的情况下将带有 Discord Bot 的消息发送到我的频道?
我想要实现的结果是,通过计时器机器人,您每分钟在聊天中发送一条消息。
如果你能用一些例子向我解释一下,我将非常感谢你
有多种方法可以在不使用命令的情况下将消息发送到通道中。 本质上,您是在问如何从不继承自ModuleBase
的 class 发送消息。
这需要您使用依赖注入将DiscordSocketClient
注入到您要从中发送消息的 class 中。
您可以在官方文档和 Discord.Net 提供的示例机器人(假设您正在使用这个库)中了解更多关于依赖注入的信息(因为它是一个很大的话题)。
简单的解决方案如下所示。
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
的方法配置为服务。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.