public ServerInfo LoadRegisteredPlayers(ServerInfo server) { string filePath = $@"{configDir}\{server.ServerName}.players"; if (!File.Exists(filePath)) { File.Create(filePath).Close(); return(server); } foreach (string entry in File.ReadAllLines(filePath)) { if (entry.StartsWith("#") || string.IsNullOrWhiteSpace(entry)) { continue; } string[] split = entry.Split(','); InstanceProvider.GetServiceLogger().AppendLine($"Server \"{server.ServerName}\" Loaded registered player: {split[1]}"); Player playerFound = server.KnownPlayers.FirstOrDefault(ply => ply.XUID == split[0]); if (playerFound == null) { server.KnownPlayers.Add(new Player(split[0], split[1], DateTime.Now.Ticks.ToString(), "0", "0", split[2] == "true", split[3], split[4] == "true", true)); continue; } InstanceProvider.GetPlayerManager().UpdatePlayerFromCfg(split[0], split[1], split[2], split[3], split[4], server); } return(server); }
private void StdOutToLog(object sender, DataReceivedEventArgs e) { serverInfo.ConsoleBuffer = serverInfo.ConsoleBuffer ?? new ServerLogger(serverInfo.LogToFileEnabled.Value == "true", serverInfo.ServerName); serverInfo.ConsoleBuffer.Append($"{serverInfo.ServerName}: {e.Data}\r\n"); if (e.Data != null) { string dataMsg = e.Data; if (dataMsg.Contains(startupMessage)) { CurrentServerStatus = ServerStatus.Started; Thread.Sleep(1000); if (serverInfo.StartCmds.Count > 0) { RunStartupCommands(); } } if (dataMsg.Contains("[INFO] Player connected")) { int usernameStart = dataMsg.IndexOf(':') + 2; int usernameEnd = dataMsg.IndexOf(','); int usernameLength = usernameEnd - usernameStart; int xuidStart = dataMsg.IndexOf(':', usernameEnd) + 2; string username = dataMsg.Substring(usernameStart, usernameLength); string xuid = dataMsg.Substring(xuidStart, dataMsg.Length - xuidStart); Console.WriteLine($"Player {username} connected with XUID: {xuid}"); InstanceProvider.GetPlayerManager().PlayerConnected(username, xuid, serverInfo); } if (dataMsg.Contains("[INFO] Player disconnected")) { int usernameStart = dataMsg.IndexOf(':') + 2; int usernameEnd = dataMsg.IndexOf(','); int usernameLength = usernameEnd - usernameStart; int xuidStart = dataMsg.IndexOf(':', usernameEnd) + 2; string username = dataMsg.Substring(usernameStart, usernameLength); string xuid = dataMsg.Substring(xuidStart, dataMsg.Length - xuidStart); Console.WriteLine($"Player {username} disconnected with XUID: {xuid}"); InstanceProvider.GetPlayerManager().PlayerDisconnected(xuid, serverInfo); } } }