2025-06-07 17:43:34 +08:00

131 lines
3.2 KiB
C#

using System.Collections.Generic;
public class ServerModel : Base
{
string key;
public List<ServerItem> list = new List<ServerItem>();
//public Dictionary<int, ServerItem> mainMap = new Dictionary<int, ServerItem>();
public ServerItem def_server;
public ServerItem sel_server;
public string loginName;
//public int roleCount;
public List<ServerRoleData> roles = new List<ServerRoleData>();
public void SetKey(string key)
{
this.key = key;
}
public string GetKey()
{
return this.key;
}
public void Reset()
{
list.Clear();
def_server = null;
sel_server = null;
roles.Clear();
}
public ServerItem GetCurServer()
{
ServerItem server = this.list[this.list.Count - 1];
if (this.def_server == null)
{
if (this.roles.Count == 0)
{
if (server.isRec)
{
this.def_server = server;
}
else
{
for (int i = this.list.Count - 2; i >= 0; i--)
{
if (list[i].isRec)
{
server = this.def_server = list[i];
break;
}
}
}
if (def_server == null)
def_server = server;
//return def_server;
}
else
{
ServerRoleData myRole = null;
for (int i = 0; i < roles.Count; i++)
{
if (myRole == null)
{
myRole = roles[i];
}
else if (roles[i].logoutTime > myRole.logoutTime)
{
myRole = roles[i];
}
}
this.def_server = GetServerItemById(myRole.serverId);
}
return def_server;
}
else
{
server = def_server;
}
if (server == null)
server = this.list[this.list.Count - 1];
return server;
}
public ServerItem GetServerItemById(int serverId)
{
for (int i = 0; i < list.Count; i++)
{
if (list[i].serverId == serverId)
return list[i];
}
return null;
}
public ServerRoleData GetRoleByServerId(int serverId)
{
for (int i = 0; i < roles.Count; i++)
{
if (roles[i].serverId == serverId)
{
return roles[i];
}
}
return null;
}
public void SetSelServer(int serverId)
{
sel_server = GetServerItemById(serverId);
}
}
public class UserServerListJson
{
public string Token { get; set; }
public long UserId { get; set; }
public string Username { get; set; }
public List<UserServerInfo> ServerList { get; set; }
}
public class UserServerInfo
{
public int Id { get; set; }
public string Area { get; set; }
public string Name { get; set; }
public string Address { get; set; }
public int Online { get; set; }
}