某些用户只能使用命令

时间:2016-08-30 01:54:27

标签: c# twitch

基本上这个程序允许用户使用命令!weaponrequest,然后将它们的请求保存到列表中,使用!nextweapon,你可以看到列表中的下一个武器是什么,这允许一个流媒体在一个列表中接受武器请求具有全自动系统的游戏。

无论如何转向我的问题,我需要一种方法来使某个用户只能使用命令。我知道我需要一个列表来存储用户。我将手动编写它们,所以我不需要任何类型的系统。所有我想知道的是使用IF语句如何检查用户是否在此列表中,然后使其成为只有那些用户可以激活该命令并接收响应。

case "nextweapon":
{
    if (new FileInfo("MyFile.txt").Length == 0)
    {
        irc.sendChatMessage("There are no weapons in the list!");
        break;
    }

    string Lines = File.ReadLines("MyFile.txt").Take(1).First();
    //irc.sendChatMessage(Lines);

    List<string> WeaponList = File.ReadAllLines("MyFile.txt").ToList();
    string FirstItem = WeaponList[0];
    WeaponList.RemoveAt(0);
    File.WriteAllLines("MyFile.txt", WeaponList.ToArray());
    irc.sendChatMessage(Lines);
    break;
}

这是我想要仅由某个用户使用的命令。

3 个答案:

答案 0 :(得分:2)

使用List<string>函数将来自源(代码内,文本,数据库等)的特殊用户添加到List<string>.Add(strUserName)变量中。

List<string> lstCertainUsers = new List<string>();
/*
 * ToDo: Add users from source (in-code, text, database, etc.) into lstCertainUsers
*/

然后,获取用户列表并检查其是否包含特定用户。

// Check if user has access to special commands
if (lstCertainUsers.Contains(strUserName)) 
{
    /* nextweapon code here */
}

答案 1 :(得分:0)

if ((username == "") || (username == "") || (username == ""))
{

}

这就是我解决问题的方法,它不是最有效的方法,但我只需要有限的用户,因此不需要制作清单。

显然,您需要使用您希望能够使用该命令的名称替换名称。例如:

(username == "RandomStranger")
{

}

答案 2 :(得分:-1)

您将文件读入缓冲区,逐行拆分,循环遍历这些行,并在找到用户名时断开循环。我不习惯C#,但下面的伪代码应该突出我的想法:

username = /* the current user's username */;
userfile = readfile('users.txt');
userlist = split(userfile, "\n");
is_valid = false;

for user in userlist
    if user equals username
        command_is_valid = true;
        break;

if command_is_valid:
    // your code

else
    // do nothing

我确信有更好的方法可以做到,因为正如我所说,我不习惯C#。另请注意,MyFile.txt可能不是平面文件数据库的最佳名称。希望这有帮助!