概述
嘿,我要做的是为游戏创建一个附加组件,当他们加入游戏时,会在我的网站上查看我在文本文件中的名字列表。
代码
public override void Init()
{
Player.Joined += (object sender, PlayerEventArgs e) =>
{
string autokick = new WebClient().DownloadString("http://leeizazombie.cba.pl/server/autokick.txt");
StringReader sr = new StringReader(autokick);
List<string> autokicklist = new List<string>();
while (sr.Peek() != -1)
{
string line = sr.ReadLine();
autokicklist.Add(line);
}
if (autokicklist.Contains(e.Player.name))
{
e.Player.Kick("Auto-Kick: "); //Reason goes in this part after kicking the player.
}
};
}
问题
我无法弄清楚如何在搜索每一行时获取文本的部分原因并排除原因部分,这是一个行的示例:
LeeIzaZombie +:开始试运行。
LeeIzaZombie +是用户名和“Kicked for a run run”。是原因。
答案 0 :(得分:0)
如果消息在用户名之后总是包含':'
,您可以Split
并获得如下原因:
e.Player.Kick("Auto-Kick: {0}", line.Split(':')[1].Trim());
如果原因不包含任何:
,则应该按预期工作。如果是,你可以尝试:
var reason = string.Join(":", line.Split(':').Skip(1));
e.Player.Kick("Auto-Kick: {0}", reason);
更新:为了从line
语句访问if
,您应该在循环之外声明它:
string line = "";
while (sr.Peek() != -1)
{
line = sr.ReadLine();
autokicklist.Add(line);
}