ServerManagers/src/ConanData/DataContainerBase.cs
Brett Hewitson e5327ac946 Nuget package updates
- Newtonsoft.Json
- changed arkdata code to only check NON STEAM players 10 times, then stop.
2022-06-21 21:36:55 +10:00

49 lines
1.5 KiB
C#

using System.Collections.Generic;
using System.Linq;
/// <summary>
/// The container for the Game Server data.
/// </summary>
namespace ConanData
{
public partial class DataContainer
{
/// <summary>
/// A list of all players registered on the server.
/// </summary>
public List<PlayerData> Players { get; set; }
/// <summary>
/// A list of all guilds registered on the server.
/// </summary>
public List<GuildData> Guilds { get; set; }
/// <summary>
/// Constructs the DataContainer.
/// </summary>
public DataContainer()
{
Players = new List<PlayerData>();
Guilds = new List<GuildData>();
}
/// <summary>
/// Links the players to their guilds and the guilds to the players.
/// </summary>
private void LinkPlayerGuild()
{
for (var i = 0; i < Players.Count; i++)
{
var player = Players[i];
player.OwnedGuilds = Guilds.Where(t => t.OwnerId == player.CharacterId).ToList();
player.Guild = Guilds.SingleOrDefault(t => t.GuildId == player.GuildId);
}
for (var i = 0; i < Guilds.Count; i++)
{
var guild = Guilds[i];
guild.Owner = Players.SingleOrDefault(p => p.CharacterId == guild.OwnerId);
guild.Players = Players.Where(p => p.GuildId == guild.GuildId).ToList();
}
}
}
}