列出列表后,从网站修剪文本文件上的一行

本文关键字:一行 文件 文本 列表 修剪 网站 | 更新日期: 2023-09-27 17:55:55

概述

嘿,我想做的是为游戏创建一个附加组件,当他们加入时,它将在我的网站上检查我在文本文件中的名称列表。

法典

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+是用户名,"踢试运行"是原因。

列出列表后,从网站修剪文本文件上的一行

如果消息总是在用户名后包含一个':',您可以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);
}