检查IRC中的排名

时间:2011-11-20 03:30:47

标签: c# irc

write("NAMES " + channel, writer);//build list of people in channel
String[] Users = reader.ReadLine().Split(' ');//read the line from NAMES, and split into Users array
String[] sender = nick.Split('!');//Person calling the bot
string[] args = data.Split('-');//Arguments to command (Not listed)
nick = sender[0].Substring(1);//Person callin the bot as above
foreach (string i in Users)
{
    if (i.StartsWith("+") && i.EndsWith(nick) || i.StartsWith("%") && i.EndsWith(nick) || i.StartsWith("@") && i.EndsWith(nick) || i.StartsWith("&") && i.EndsWith(nick) || i.StartsWith("~") && i.EndsWith(nick))
    {
        Roll_Args(nick, args[1], args[2]);//If above is correct, roll the the command
    }
}

由于某些原因,它不适用于@,但适用于+级别。我不知道如何检查IRC中的排名。

是否有更可靠/有效的方法来检查IRC中的排名?

感谢阅读。

编辑:有时并不总是适用于某些人的用户名/昵称。例如:@Oh_Herro_Der不适用于该命令。

1 个答案:

答案 0 :(得分:2)

您需要将每个&&条件括在括号内。

if (i.StartsWith("+") && i.EndsWith(nick)) 
|| (i.StartsWith("%") && i.EndsWith(nick)) 
|| (i.StartsWith("@") && i.EndsWith(nick)) 
|| (i.StartsWith("&") && i.EndsWith(nick)) 
|| (i.StartsWith("~") && i.EndsWith(nick)))
{
    Roll_Args(nick, args[1], args[2]);//If above is correct, roll the the command
}