public Chart(string savePath) { State = States.Initializing; //先这样子用着隔壁的,反正这类也不会被加载到 Config = new MonitorPlayerConfig(Environment.GetCommandLineArgs()); DataPath = string.IsNullOrWhiteSpace(savePath) != true ? savePath : throw new ArgumentNullException(nameof(savePath)); ping = new Ping(Config.ServerHost, Config.ServerPort); }
public MonitorPlayer(MonitorPlayerConfig config) { State = States.Initializing; Config = config != null ? config : throw new ArgumentNullException(nameof(config)); MainPlayerManager = new PlayerManager(config); //注册玩家上下线的事件 if (!string.IsNullOrWhiteSpace(Config.RunCommandForPlayerJoin)) { MainPlayerManager.Joined += player => { const string reg = @"^(\S+)( (.*))?$"; ProcessStartInfo StartInfo = new ProcessStartInfo(); StartInfo.FileName = Regex.Replace(Config.RunCommandForPlayerJoin, reg, "$1"); if (Config.RunCommandForPlayerJoin.Contains(" ")) { StartInfo.Arguments = Regex .Replace(Config.RunCommandForPlayerJoin, reg, "$3") .Replace("$PLAYER_NAME", player.Name) .Replace("$PLAYER_UUID", player.Uuid.ToString()); } Process.Start(StartInfo); }; } if (!string.IsNullOrWhiteSpace(Config.RunCommandForPlayerDisconnected)) { MainPlayerManager.Disconnected += player => { const string reg = @"^(\S+)( (.*))?$"; ProcessStartInfo StartInfo = new ProcessStartInfo(); StartInfo.FileName = Regex.Replace(Config.RunCommandForPlayerDisconnected, reg, "$1"); if (Config.RunCommandForPlayerDisconnected.Contains(" ")) { StartInfo.Arguments = Regex .Replace(Config.RunCommandForPlayerDisconnected, reg, "$3") .Replace("$PLAYER_NAME", player.Name) .Replace("$PLAYER_UUID", player.Uuid.ToString()); } Process.Start(StartInfo); }; } //解析服务器地址(如果是域名的话) try { SLP = new Ping(Config.ServerHost, Config.ServerPort); } catch (SocketException se) { if (se.SocketErrorCode == SocketError.HostNotFound) { Screen.Clear(); ColorfullyConsole.WriteLine("&c错误&r:&f你输入的服务器地址不存在"); ColorfullyConsole.WriteLine($"&e详细信息&r:&4{se}"); Program.Exit(-1); } } State = States.Initialized; }
public PlayerManager(MonitorPlayerConfig config) { Config = config ?? throw new ArgumentNullException(nameof(config)); }