KF2-AdminAutoLogin/AAL/Classes/AdminList.uc

85 lines
1.5 KiB
Ucode

class AdminList extends Object
config(AAL)
abstract;
var private config Array<String> AdminId;
public static function InitConfig(int Version, int LatestVersion, E_LogLevel LogLevel)
{
`Log_TraceStatic();
switch (Version)
{
case `NO_CONFIG:
ApplyDefault(LogLevel);
default: break;
}
if (LatestVersion != Version)
{
StaticSaveConfig();
}
}
public static function Array<UniqueNetId> Load(OnlineSubsystem OS, E_LogLevel LogLevel)
{
local Array<UniqueNetId> UIDs;
local UniqueNetId UID;
local String ID;
`Log_TraceStatic();
foreach default.AdminId(ID)
{
if (AnyToUID(OS, ID, UID, LogLevel))
{
UIDs.AddItem(UID);
`Log_Debug("Loaded:" @ ID);
}
else
{
`Log_Warn("Can't load AdminId:" @ ID);
}
}
if (default.AdminId.Length == UIDs.Length)
{
`Log_Info("Loaded" @ UIDs.Length @ "entries");
}
else
{
`Log_Info("Loaded" @ UIDs.Length @ "of" @ default.AdminId.Length @ "entries");
}
return UIDs;
}
private static function ApplyDefault(E_LogLevel LogLevel)
{
`Log_TraceStatic();
default.AdminId.Length = 0;
default.AdminId.AddItem("76561190000000000");
default.AdminId.AddItem("0x0000000000000000");
}
private static function bool IsUID(String ID, E_LogLevel LogLevel)
{
`Log_TraceStatic();
return (Left(ID, 2) ~= "0x");
}
private static function bool AnyToUID(OnlineSubsystem OS, String ID, out UniqueNetId UID, E_LogLevel LogLevel)
{
`Log_TraceStatic();
return IsUID(ID, LogLevel) ? OS.StringToUniqueNetId(ID, UID) : OS.Int64ToUniqueNetId(ID, UID);
}
defaultproperties
{
}