using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
namespace Sog
{
public enum AppRunMode
{
///
/// 初始,错误
///
None = 0,
///
/// 非代理模式
/// 启动
///
Run = 1,
///
/// 代理模式
/// 启动
///
Start = 2,
///
/// 代理模式
/// 停服,注意保存数据
///
Stop = 3,
///
/// 代理模式
/// 重新加载逻辑模块(XXXServer.dll)
///
Hotfix = 4,
///
/// 代理模式
/// 重新加载配置
///
ReloadConfig = 5,
///
/// 代理模式
/// 死亡测试,正式环境别用
///
//DeadTest = 6,
///
/// 重新加载cluster.json配置文件
///
ReloadCluster = 7,
///
/// 代理模式
/// Gm指令,主要是GameServer使用
///
GmCommand = 10,
///
/// 工具模式
/// hotfix检查, 检查协议是否有修改,有修改则不能hotfix,免得引起运营事故
///
HotfixCheck = 12,
}
public class AppParam
{
public uint ServerID { get; private set; } //服务器inst 拼合id,
public string ConfigFileName { get; set; }
public string ClusterFileName { get; private set; } //args 里面的配置文件名
public SogServerConfig ServerConfig { get; private set; }
public AppRunMode RunMode { get; private set; }
public bool forceHotfix { get; private set; }
public string CommandAllText { get; private set; }
public string[] Args { get; private set; }
public string hotfixcheckDllFileFullName { get; private set; }
public AppParam(string[] args)
{
Args = args;
//缺省
//在SogLoader里需要判断
RunMode = AppRunMode.None;
Parse(args);
Check();
}
/*
* 不进行校验,特殊服务器使用,比如ServerManager
*/
public AppParam(string[] args, bool noCheck)
{
Args = args;
//缺省
//在SogLoader里需要判断
RunMode = AppRunMode.None;
Parse(args);
}
public void Parse(string[] args)
{
int count = args.Length;
for(int i=0; i(ConfigFileName);
if(config == null)
{
Console.WriteLine("SogServerConfig ConfigFileName {0} read failed", ConfigFileName);
}
else
{
ServerConfig = config;
//转化格式
ServerConfig.ReplaceFormatString(ServerID);
}
}
}
}