Files
BetterAmongUs/Data/Json/BetterDataFile.cs
T
2025-10-20 22:01:23 -05:00

62 lines
1.8 KiB
C#

using BetterAmongUs.Items.Structs;
using System.Text.Json.Serialization;
namespace BetterAmongUs.Data.Json;
internal sealed class BetterDataFile : AbstractJsonFile
{
internal override string FilePath => BetterDataManager.dataPath;
protected override bool Load()
{
var success = base.Load();
if (success)
{
SelectedOutfitPreset = Math.Clamp(SelectedOutfitPreset, 0, 5);
AllCheatData = [.. CheatData, .. SickoData, .. AUMData, .. KNData];
}
return success;
}
internal override bool Save()
{
AllCheatData = [.. CheatData, .. SickoData, .. AUMData, .. KNData];
return base.Save();
}
internal bool CheckPlayerData(NetworkedPlayerInfo data) => CheckPlayerDataWithReason(data).check;
internal (bool check, string reason) CheckPlayerDataWithReason(NetworkedPlayerInfo data)
{
foreach (var info in AllCheatData)
{
var (check, reason) = info.CheckPlayerDataWithReason(data);
if (check)
{
return (true, reason);
}
}
return (false, "");
}
internal HashSet<UserInfo> AllCheatData { get; set; } = [];
[JsonPropertyName("selectedOutfitPreset")]
public int SelectedOutfitPreset { get; set; } = 0;
[JsonPropertyName("outfitData")]
public HashSet<OutfitData> OutfitData { get; set; } = [new(), new(), new(), new(), new(), new()];
[JsonPropertyName("cheatData")]
public HashSet<UserInfo> CheatData { get; set; } = [];
[JsonPropertyName("sickoData")]
public HashSet<UserInfo> SickoData { get; set; } = [];
[JsonPropertyName("aumData")]
public HashSet<UserInfo> AUMData { get; set; } = [];
[JsonPropertyName("knData")]
public HashSet<UserInfo> KNData { get; set; } = [];
}