84 lines
1.5 KiB
Ucode
84 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
|
|
{
|
|
|
|
} |