首页 > 解决方案 > C# 控制台应用程序制作完全自定义的命令

问题描述

我正在尝试制作 IRC 管理系统,但我需要制作自定义命令。

例如:

if (e.PrivateMessage.Message == ".ban") // add Custom time and reason
{
    Console.WriteLine("Master Requested .ban (Ban)");
}

问题是:如何添加自定义原因和时间,以便编写“.ban Banada Spamchat”

标签: c#irc

解决方案


你可能想要这样的东西:

var commands = new Dictionary<string, Action<string[]>>
{
    ["ban"] = HandleBanCommand,
};

var args = e.PrivateMessage.Split(' ');
if (args[0].StartsWith("."))
{
    if (commands.TryGetValue(args[0].Substring(1), out var command))
    {
        command(args);
    }
    else
    {
        // command not found...
    }
}

// ...

void HandleBanCommand(string[] args)
{
    if (args.Length < 3)
    {
        // arguments missing...
        return;
    }

    var user = args[1];
    var reason = args[2];
    // add duration, and increment the length above by 1

    // ban the user...
}

推荐阅读