You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
56 lines
1.9 KiB
56 lines
1.9 KiB
3 years ago
|
using System;
|
||
|
using System.Collections;
|
||
|
using System.Diagnostics;
|
||
|
|
||
|
namespace ET
|
||
|
{
|
||
|
public static class WatcherHelper
|
||
|
{
|
||
|
public static StartMachineConfig GetThisMachineConfig()
|
||
|
{
|
||
|
string[] localIP = NetworkHelper.GetAddressIPs();
|
||
|
StartMachineConfig startMachineConfig = null;
|
||
|
foreach (StartMachineConfig config in StartMachineConfigCategory.Instance.GetAll().Values)
|
||
|
{
|
||
|
if (!WatcherHelper.IsThisMachine(config.InnerIP, localIP))
|
||
|
{
|
||
|
continue;
|
||
|
}
|
||
|
startMachineConfig = config;
|
||
|
break;
|
||
|
}
|
||
|
|
||
|
if (startMachineConfig == null)
|
||
|
{
|
||
|
throw new Exception("not found this machine ip config!");
|
||
|
}
|
||
|
|
||
|
return startMachineConfig;
|
||
|
}
|
||
|
|
||
|
public static bool IsThisMachine(string ip, string[] localIPs)
|
||
|
{
|
||
|
if (ip != "127.0.0.1" && ip != "0.0.0.0" && !((IList) localIPs).Contains(ip))
|
||
|
{
|
||
|
return false;
|
||
|
}
|
||
|
return true;
|
||
|
}
|
||
|
|
||
|
public static Process StartProcess(int processId, int createScenes = 0)
|
||
|
{
|
||
|
StartProcessConfig startProcessConfig = StartProcessConfigCategory.Instance.Get(processId);
|
||
|
const string exe = "dotnet";
|
||
|
string arguments = $"{startProcessConfig.AppName}.dll" +
|
||
|
$" --Process={startProcessConfig.Id}" +
|
||
|
$" --AppType={startProcessConfig.AppName}" +
|
||
|
$" --StartConfig={Game.Options.StartConfig}" +
|
||
|
$" --Develop={Game.Options.Develop}" +
|
||
|
$" --CreateScenes={createScenes}" +
|
||
|
$" --LogLevel={Game.Options.LogLevel}";
|
||
|
Log.Debug($"{exe} {arguments}");
|
||
|
Process process = ProcessHelper.Run(exe, arguments);
|
||
|
return process;
|
||
|
}
|
||
|
}
|
||
|
}
|