public GameResult ChangeStatus(ChangeStatusParam param) { if (!string.IsNullOrEmpty(param.GameServerId)) { GameServerId = param.GameServerId; } GameResult result = null; if (!CompleteInstal()) { Create(new CreateParam { GamePort = param.GamePort }); } switch (param.TypeStatus) { case GameHostTypeStatus.Enable: result = On(param); break; case GameHostTypeStatus.Disable: result = Off(param); break; case GameHostTypeStatus.Restart: result = Restart(param); break; } return(result); }
public async Task <IActionResult> ChangeStatus([FromBody] ChangeStatusParam p) { if (ModelState.IsValid) { var item = _context.UserStories.Single(t => t.ID == p.ItemID); var s = StoryStatusList.GetNextStatus(item.StatusCode); item.StatusCode = s.Value; await _context.SaveChangesAsync(); return(Json(s.Name)); } return(null); }
protected virtual GameResult On(ChangeStatusParam param) { var result = new GameResult(); var run = $"cd {Path}/{GameName};" + $"./{GameName} start -servicename {GameName}{GameServerId} -port {param.GamePort} -clientport {param.GamePort + 1};"; Command.Execute(run); if (!string.IsNullOrEmpty(Command.Error)) { ValidateError(Command, result); } result.Data = Command.Result; return(result); }
protected override GameResult Restart(ChangeStatusParam param) { var result = new GameResult(); var run = $"cd {Path}/{GameName};" + $"./{GameName} restart -servicename {GameName}{GameServerId} -gameport {param.GamePort} " + $"-rconport {param.GamePort + 1};"; var res = Client.RunCommand(run); if (!string.IsNullOrEmpty(res.Error)) { ValidateError(res, result); } result.Data = res.Result; return(result); }
protected virtual GameResult Off(ChangeStatusParam param) { var result = new GameResult(); //IDictionary<Renci.SshNet.Common.TerminalModes, uint> termkvp = new Dictionary<Renci.SshNet.Common.TerminalModes, uint>(); //termkvp.Add(Renci.SshNet.Common.TerminalModes.ECHO, 53); //Terminal = Client.CreateShellStream("xterm", 80, 24, 800, 600, 1024, termkvp); //Writer = new StreamWriter(Terminal) { AutoFlush = true }; var run = $"cd {Path}/{GameName};" + $"./{GameName} stop -servicename {GameName}{GameServerId} -port {param.GamePort};"; Command.Execute(run); if (!string.IsNullOrEmpty(Command.Error)) { ValidateError(Command, result); } //Writer.WriteLine(run); result.Data = Command.Result; return(result); }
protected override GameResult Restart(ChangeStatusParam param) { var result = new GameResult(); var run = $"cd {Path}/{GameName};" + $"./{GameName} restart -servicename {GameName}{GameServerId} -port {param.GamePort} " + $"-clientport {param.GamePort + 1} -sourcetvport {param.GamePort + 2}"; if (!string.IsNullOrEmpty(DefaultMap)) { run += $" -defaultmap {DefaultMap}"; } if (MaxPlayers > 0) { run += $" -maxplayers {MaxPlayers}"; } run += ";"; Command.Execute(run); if (!string.IsNullOrEmpty(Command.Error)) { ValidateError(Command, result); } result.Data = Command.Result; return(result); }
protected override GameResult On(ChangeStatusParam param) { var result = new GameResult(); var run = $"cd {Path}/{GameName};" + $"./{GameName} start -servicename {GameName}{GameServerId} -port {param.GamePort} " + $"-queryport {param.GamePort + 1}"; if (!string.IsNullOrEmpty(ServerName)) { run += $" -servername {ServerName}"; } if (MaxPlayers > 0) { run += $" -maxplayers {MaxPlayers}"; } run += ";"; Command.Execute(run); if (!string.IsNullOrEmpty(Command.Error)) { ValidateError(Command, result); } result.Data = Command.Result; return(result); }