为Discord编写机器人,并希望在出错时更容易调试。
我想接受这个
imagePickerController:didFinishPickingMediaWithInfo:
并且,如果可能的话,使它成为每个命令都有自己的类文件,所以它是这样的
private static void Main(string[]) args)
{
var client = new DiscordClient();
client.Connect(" ");
var commands = new client.Services.Get<CommandService>();
commands.CreateCommand("test")
.Description("This is a test command.")
.Do(async e =>
{
await e.Channel.SendMessage("Test Successful!");
});
}
我从未对多类很好,即使是类似的例子也会有所帮助。
答案 0 :(得分:1)
您可以创建一个接口IDiscordCommand
,其中包含名称,描述和运行该命令的方法。
public interface IDiscordCommand
{
string Name { get; set; }
string Description { get; set; }
void Run(CommandEventArgs e);
}
示例实现将是
public class TestCommand : IDiscordCommand
{
public string Name { get; set; }
public string Description { get; set; }
public void Run(CommandEventArgs e)
{
e.Channel.SendMessage("Test");
}
}
然后在您的程序中,您可以创建一个包含所有可用命令的列表,foreach命令将其注册到CommandService
,如此
public class Program
{
static void Main(string[] args)
{
var client = new DiscordClient();
client.Connect(" ");
RegisterCommands(client.Services.Get<CommandService>());
}
public static void RegisterCommands(CommandService commandService)
{
var commands = new List<IDiscordCommand>();
commands.Add(new TestCommand());
foreach (var command in commands)
{
commandService.CreateCommand(command.Name)
.Description(command.Description)
.Do(command.Run);
}
}
}