Files
squad-rain-ops-mini/Models.cs

67 lines
2.8 KiB
C#

namespace RainOpsMini.Models
{
public class PlayerInfo
{
public int Id { get; set; }
public string Name { get; set; } = string.Empty;
public string SteamId { get; set; } = string.Empty;
public string EosId { get; set; } = string.Empty;
public int TeamId { get; set; }
public int? SquadId { get; set; }
public bool IsLeader { get; set; }
public string Role { get; set; } = string.Empty;
// Stats from Logs
public int Kills { get; set; }
public int Deaths { get; set; }
}
public class SquadInfo
{
public int Id { get; set; }
public string Name { get; set; } = string.Empty;
public int Size { get; set; }
public bool Locked { get; set; }
public int TeamId { get; set; }
public string CreatorName { get; set; } = string.Empty;
public string CreatorSteamId { get; set; } = string.Empty;
public string CreatorEosId { get; set; } = string.Empty;
public string LastCreatedTime { get; set; } = string.Empty; // Formatted time or empty
}
public class ServerData
{
public ServerInfoResponse? ServerInfo { get; set; }
public List<PlayerInfo> Players { get; set; } = new List<PlayerInfo>();
public List<SquadInfo> Squads { get; set; } = new List<SquadInfo>();
}
public class ServerInfoResponse
{
public int MaxPlayers { get; set; }
public string GameMode_s { get; set; } = string.Empty;
public string MapName_s { get; set; } = string.Empty;
public string GameVersion_s { get; set; } = string.Empty;
public string PlayerCount_I { get; set; } = "0";
public string ServerName_s { get; set; } = string.Empty;
public string TeamOne_s { get; set; } = string.Empty;
public string TeamTwo_s { get; set; } = string.Empty;
public string NextLayer_s { get; set; } = string.Empty;
public double MatchTimeout_d { get; set; }
public int PlayTime_I { get; set; } // Current match duration in seconds
}
public class VipMember
{
public string SteamId { get; set; } = string.Empty;
public string Name { get; set; } = string.Empty; // 玩家名称/备注
public string Group { get; set; } = "VIP_RainOpsMini"; // VIP_RainOpsMini 或 SVIP_RainOpsMini
public DateTime ExpiryDate { get; set; }
public DateTime? VipExpiryDate { get; set; } // VIP 独立到期时间
public DateTime? SvipExpiryDate { get; set; } // SVIP 独立到期时间
public string Remark { get; set; } = string.Empty; // 原因/备注
public string WelcomeMessage { get; set; } = string.Empty; // 自定义欢迎语
public DateTime CreatedAt { get; set; } = DateTime.Now;
}
}