mirror of
https://github.com/tribufu/ServerManagers
synced 2026-05-06 15:17:34 +00:00
merged individual LoadServerFiles into one method to fetch steam users only once.
This commit is contained in:
parent
89a03123bb
commit
f73b8c530d
4 changed files with 131 additions and 127 deletions
|
|
@ -3473,9 +3473,7 @@ namespace ServerManagerTool.Lib
|
|||
{
|
||||
InstallDirectory = folder;
|
||||
|
||||
LoadServerFileAdministrators();
|
||||
LoadServerFileExclusive();
|
||||
LoadServerFileWhitelisted();
|
||||
LoadServerFiles(true, true, true);
|
||||
SetupServerFilesWatcher();
|
||||
}
|
||||
|
||||
|
|
@ -3561,9 +3559,7 @@ namespace ServerManagerTool.Lib
|
|||
settings.MutagenLevelBoostBred.Reset();
|
||||
settings.PerLevelStatsMultiplier_Player.Reset();
|
||||
settings.PlayerBaseStatMultipliers.Reset();
|
||||
settings.LoadServerFileAdministrators();
|
||||
settings.LoadServerFileExclusive();
|
||||
settings.LoadServerFileWhitelisted();
|
||||
settings.LoadServerFiles(true, true, true);
|
||||
settings.SetupServerFilesWatcher();
|
||||
return settings;
|
||||
}
|
||||
|
|
@ -4140,9 +4136,7 @@ namespace ServerManagerTool.Lib
|
|||
if (Config.Default.SectionPreventTransferOverridesEnabled)
|
||||
profile.PreventTransferForClassNames.RenderToView();
|
||||
|
||||
profile.LoadServerFileAdministrators();
|
||||
profile.LoadServerFileExclusive();
|
||||
profile.LoadServerFileWhitelisted();
|
||||
profile.LoadServerFiles(true, true, true);
|
||||
profile.SetupServerFilesWatcher();
|
||||
|
||||
profile._lastSaveLocation = file;
|
||||
|
|
@ -6364,18 +6358,24 @@ namespace ServerManagerTool.Lib
|
|||
#region Server Files
|
||||
private void ServerFilesWatcher_Changed(object sender, FileSystemEventArgs e)
|
||||
{
|
||||
var adminFile = false;
|
||||
var exclusiveFile = false;
|
||||
var whitelistFile = false;
|
||||
|
||||
if (e.Name.Equals(Config.Default.ArkAdminFile, StringComparison.OrdinalIgnoreCase))
|
||||
{
|
||||
TaskUtils.RunOnUIThreadAsync(() => LoadServerFileAdministrators()).DoNotWait();
|
||||
adminFile = true;
|
||||
}
|
||||
else if (e.Name.Equals(Config.Default.ArkExclusiveFile, StringComparison.OrdinalIgnoreCase))
|
||||
if (e.Name.Equals(Config.Default.ArkExclusiveFile, StringComparison.OrdinalIgnoreCase))
|
||||
{
|
||||
TaskUtils.RunOnUIThreadAsync(() => LoadServerFileExclusive()).DoNotWait();
|
||||
exclusiveFile = true;
|
||||
}
|
||||
else if (e.Name.Equals(Config.Default.ArkWhitelistFile, StringComparison.OrdinalIgnoreCase))
|
||||
if (e.Name.Equals(Config.Default.ArkWhitelistFile, StringComparison.OrdinalIgnoreCase))
|
||||
{
|
||||
TaskUtils.RunOnUIThreadAsync(() => LoadServerFileWhitelisted()).DoNotWait();
|
||||
whitelistFile = true;
|
||||
}
|
||||
|
||||
TaskUtils.RunOnUIThreadAsync(() => LoadServerFiles(adminFile, exclusiveFile, whitelistFile)).DoNotWait();
|
||||
}
|
||||
|
||||
private void ServerFilesWatcher_Error(object sender, ErrorEventArgs e)
|
||||
|
|
@ -6447,74 +6447,76 @@ namespace ServerManagerTool.Lib
|
|||
_serverFilesWatcherSaved.EnableRaisingEvents = true;
|
||||
}
|
||||
|
||||
public void LoadServerFileAdministrators()
|
||||
public void LoadServerFiles(bool adminFile, bool exclusiveFile, bool whitelistFile)
|
||||
{
|
||||
try
|
||||
{
|
||||
var list = this.ServerFilesAdmins ?? new PlayerUserList();
|
||||
var list1 = this.ServerFilesAdmins ?? new PlayerUserList();
|
||||
var list2 = this.ServerFilesExclusive ?? new PlayerUserList();
|
||||
var list3 = this.ServerFilesWhitelisted ?? new PlayerUserList();
|
||||
|
||||
var file = Path.Combine(InstallDirectory, Config.Default.SavedRelativePath, Config.Default.ArkAdminFile);
|
||||
if (File.Exists(file))
|
||||
var allSteamIds = new List<string>();
|
||||
string[] adminSteamIds = null;
|
||||
string[] exclusiveSteamIds = null;
|
||||
string[] whitelistSteamIds = null;
|
||||
|
||||
if (adminFile)
|
||||
{
|
||||
var steamIds = File.ReadAllLines(file);
|
||||
var steamUsers = SteamUtils.GetSteamUserDetails(steamIds.ToList());
|
||||
|
||||
list = PlayerUserList.GetList(steamUsers, steamIds);
|
||||
var file = Path.Combine(InstallDirectory, Config.Default.SavedRelativePath, Config.Default.ArkAdminFile);
|
||||
if (File.Exists(file))
|
||||
{
|
||||
adminSteamIds = File.ReadAllLines(file);
|
||||
allSteamIds.AddRange(adminSteamIds);
|
||||
}
|
||||
}
|
||||
|
||||
this.ServerFilesAdmins = list;
|
||||
if (exclusiveFile)
|
||||
{
|
||||
var file = Path.Combine(InstallDirectory, Config.Default.ServerBinaryRelativePath, Config.Default.ArkExclusiveFile);
|
||||
if (File.Exists(file))
|
||||
{
|
||||
exclusiveSteamIds = File.ReadAllLines(file);
|
||||
allSteamIds.AddRange(exclusiveSteamIds);
|
||||
}
|
||||
}
|
||||
|
||||
if (whitelistFile)
|
||||
{
|
||||
var file = Path.Combine(InstallDirectory, Config.Default.ServerBinaryRelativePath, Config.Default.ArkWhitelistFile);
|
||||
if (File.Exists(file))
|
||||
{
|
||||
whitelistSteamIds = File.ReadAllLines(file);
|
||||
allSteamIds.AddRange(whitelistSteamIds);
|
||||
}
|
||||
}
|
||||
|
||||
// remove all duplicates
|
||||
allSteamIds = allSteamIds.Distinct().ToList();
|
||||
|
||||
// fetch the details of all steam users in the list
|
||||
var steamUsers = SteamUtils.GetSteamUserDetails(allSteamIds);
|
||||
|
||||
if (adminFile && adminSteamIds != null)
|
||||
{
|
||||
list1 = PlayerUserList.GetList(steamUsers, adminSteamIds);
|
||||
}
|
||||
|
||||
if (exclusiveFile && exclusiveSteamIds != null)
|
||||
{
|
||||
list2 = PlayerUserList.GetList(steamUsers, exclusiveSteamIds);
|
||||
}
|
||||
|
||||
if (whitelistFile && whitelistSteamIds != null)
|
||||
{
|
||||
list3 = PlayerUserList.GetList(steamUsers, whitelistSteamIds);
|
||||
}
|
||||
|
||||
this.ServerFilesAdmins = list1;
|
||||
this.ServerFilesExclusive = list2;
|
||||
this.ServerFilesWhitelisted = list3;
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
this.ServerFilesAdmins = new PlayerUserList();
|
||||
MessageBox.Show(ex.Message, _globalizer.GetResourceString("ServerSettings_ServerFilesLoadErrorTitle"), MessageBoxButton.OK, MessageBoxImage.Error);
|
||||
}
|
||||
}
|
||||
|
||||
public void LoadServerFileExclusive()
|
||||
{
|
||||
try
|
||||
{
|
||||
var list = this.ServerFilesExclusive ?? new PlayerUserList();
|
||||
|
||||
var file = Path.Combine(InstallDirectory, Config.Default.ServerBinaryRelativePath, Config.Default.ArkExclusiveFile);
|
||||
if (File.Exists(file))
|
||||
{
|
||||
var steamIds = File.ReadAllLines(file);
|
||||
var steamUsers = SteamUtils.GetSteamUserDetails(steamIds.ToList());
|
||||
|
||||
list = PlayerUserList.GetList(steamUsers, steamIds);
|
||||
}
|
||||
|
||||
this.ServerFilesExclusive = list;
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
this.ServerFilesExclusive = new PlayerUserList();
|
||||
MessageBox.Show(ex.Message, _globalizer.GetResourceString("ServerSettings_ServerFilesLoadErrorTitle"), MessageBoxButton.OK, MessageBoxImage.Error);
|
||||
}
|
||||
}
|
||||
|
||||
public void LoadServerFileWhitelisted()
|
||||
{
|
||||
try
|
||||
{
|
||||
var list = this.ServerFilesWhitelisted ?? new PlayerUserList();
|
||||
|
||||
var file = Path.Combine(InstallDirectory, Config.Default.ServerBinaryRelativePath, Config.Default.ArkWhitelistFile);
|
||||
if (File.Exists(file))
|
||||
{
|
||||
var steamIds = File.ReadAllLines(file);
|
||||
var steamUsers = SteamUtils.GetSteamUserDetails(steamIds.ToList());
|
||||
|
||||
list = PlayerUserList.GetList(steamUsers, steamIds);
|
||||
}
|
||||
|
||||
this.ServerFilesWhitelisted = list;
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
this.ServerFilesWhitelisted = new PlayerUserList();
|
||||
MessageBox.Show(ex.Message, _globalizer.GetResourceString("ServerSettings_ServerFilesLoadErrorTitle"), MessageBoxButton.OK, MessageBoxImage.Error);
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -2693,7 +2693,7 @@ namespace ServerManagerTool
|
|||
Application.Current.Dispatcher.Invoke(() => this.Cursor = Cursors.Wait);
|
||||
await Task.Delay(500);
|
||||
|
||||
Settings.LoadServerFileAdministrators();
|
||||
Settings.LoadServerFiles(true, false, false);
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
|
|
@ -2714,7 +2714,7 @@ namespace ServerManagerTool
|
|||
Application.Current.Dispatcher.Invoke(() => this.Cursor = Cursors.Wait);
|
||||
await Task.Delay(500);
|
||||
|
||||
Settings.LoadServerFileExclusive();
|
||||
Settings.LoadServerFiles(false, true, false);
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
|
|
@ -2735,7 +2735,7 @@ namespace ServerManagerTool
|
|||
Application.Current.Dispatcher.Invoke(() => this.Cursor = Cursors.Wait);
|
||||
await Task.Delay(500);
|
||||
|
||||
Settings.LoadServerFileWhitelisted();
|
||||
Settings.LoadServerFiles(false, false, true);
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
|
|
|
|||
|
|
@ -688,8 +688,7 @@ namespace ServerManagerTool.Lib
|
|||
{
|
||||
InstallDirectory = folder;
|
||||
|
||||
LoadServerFileBlacklisted();
|
||||
LoadServerFileWhitelisted();
|
||||
LoadServerFiles(true, true);
|
||||
SetupServerFilesWatcher();
|
||||
}
|
||||
|
||||
|
|
@ -759,8 +758,7 @@ namespace ServerManagerTool.Lib
|
|||
internal static ServerProfile FromDefaults()
|
||||
{
|
||||
var settings = new ServerProfile();
|
||||
settings.LoadServerFileBlacklisted();
|
||||
settings.LoadServerFileWhitelisted();
|
||||
settings.LoadServerFiles(true, true);
|
||||
settings.SetupServerFilesWatcher();
|
||||
return settings;
|
||||
}
|
||||
|
|
@ -949,8 +947,7 @@ namespace ServerManagerTool.Lib
|
|||
profile = LoadFromConfigFiles(serverConfigFile, profile);
|
||||
}
|
||||
|
||||
profile.LoadServerFileBlacklisted();
|
||||
profile.LoadServerFileWhitelisted();
|
||||
profile.LoadServerFiles(true, true);
|
||||
profile.SetupServerFilesWatcher();
|
||||
|
||||
profile._lastSaveLocation = file;
|
||||
|
|
@ -1536,14 +1533,19 @@ namespace ServerManagerTool.Lib
|
|||
#region Server Files
|
||||
private void ServerFilesWatcher_Changed(object sender, FileSystemEventArgs e)
|
||||
{
|
||||
var blacklistFile = false;
|
||||
var whitelistFile = false;
|
||||
|
||||
if (e.Name.Equals(Config.Default.ServerBlacklistFile, StringComparison.OrdinalIgnoreCase))
|
||||
{
|
||||
TaskUtils.RunOnUIThreadAsync(() => LoadServerFileBlacklisted()).DoNotWait();
|
||||
blacklistFile = true;
|
||||
}
|
||||
if (e.Name.Equals(Config.Default.ServerWhitelistFile, StringComparison.OrdinalIgnoreCase))
|
||||
{
|
||||
TaskUtils.RunOnUIThreadAsync(() => LoadServerFileWhitelisted()).DoNotWait();
|
||||
whitelistFile = true;
|
||||
}
|
||||
|
||||
TaskUtils.RunOnUIThreadAsync(() => LoadServerFiles(blacklistFile, whitelistFile)).DoNotWait();
|
||||
}
|
||||
|
||||
private void ServerFilesWatcher_Error(object sender, ErrorEventArgs e)
|
||||
|
|
@ -1589,58 +1591,58 @@ namespace ServerManagerTool.Lib
|
|||
_serverFilesWatcher.EnableRaisingEvents = true;
|
||||
}
|
||||
|
||||
public void LoadServerFileBlacklisted()
|
||||
public void LoadServerFiles(bool blacklistFile, bool whitelistFile)
|
||||
{
|
||||
try
|
||||
{
|
||||
var list = this.ServerFilesBlacklisted ?? new PlayerUserList();
|
||||
var list1 = this.ServerFilesBlacklisted ?? new PlayerUserList();
|
||||
var list2 = this.ServerFilesWhitelisted ?? new PlayerUserList();
|
||||
|
||||
var file = Path.Combine(InstallDirectory, Config.Default.SavedFilesRelativePath, Config.Default.ServerBlacklistFile);
|
||||
if (File.Exists(file))
|
||||
var allSteamIds = new List<string>();
|
||||
string[] blacklistSteamIds = null;
|
||||
string[] whitelistSteamIds = null;
|
||||
|
||||
if (blacklistFile)
|
||||
{
|
||||
var steamIds = File.ReadAllLines(file);
|
||||
var steamUsers = SteamUtils.GetSteamUserDetails(steamIds.ToList());
|
||||
|
||||
list = PlayerUserList.GetList(steamUsers, steamIds);
|
||||
var file = Path.Combine(InstallDirectory, Config.Default.ServerBinaryRelativePath, Config.Default.ServerBlacklistFile);
|
||||
if (File.Exists(file))
|
||||
{
|
||||
blacklistSteamIds = File.ReadAllLines(file);
|
||||
allSteamIds.AddRange(blacklistSteamIds);
|
||||
}
|
||||
}
|
||||
|
||||
this.ServerFilesBlacklisted = list;
|
||||
}
|
||||
catch (IOException)
|
||||
{
|
||||
// do nothing
|
||||
if (whitelistFile)
|
||||
{
|
||||
var file = Path.Combine(InstallDirectory, Config.Default.ServerBinaryRelativePath, Config.Default.ServerWhitelistFile);
|
||||
if (File.Exists(file))
|
||||
{
|
||||
whitelistSteamIds = File.ReadAllLines(file);
|
||||
allSteamIds.AddRange(whitelistSteamIds);
|
||||
}
|
||||
}
|
||||
|
||||
// remove all duplicates
|
||||
allSteamIds = allSteamIds.Distinct().ToList();
|
||||
|
||||
// fetch the details of all steam users in the list
|
||||
var steamUsers = SteamUtils.GetSteamUserDetails(allSteamIds);
|
||||
|
||||
if (blacklistFile && blacklistSteamIds != null)
|
||||
{
|
||||
list1 = PlayerUserList.GetList(steamUsers, blacklistSteamIds);
|
||||
}
|
||||
|
||||
if (whitelistFile && whitelistSteamIds != null)
|
||||
{
|
||||
list2 = PlayerUserList.GetList(steamUsers, whitelistSteamIds);
|
||||
}
|
||||
|
||||
this.ServerFilesBlacklisted = list1;
|
||||
this.ServerFilesWhitelisted = list2;
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
this.ServerFilesBlacklisted = new PlayerUserList();
|
||||
MessageBox.Show(ex.Message, _globalizer.GetResourceString("ServerSettings_ServerFilesLoadErrorTitle"), MessageBoxButton.OK, MessageBoxImage.Error);
|
||||
}
|
||||
}
|
||||
|
||||
public void LoadServerFileWhitelisted()
|
||||
{
|
||||
try
|
||||
{
|
||||
var list = this.ServerFilesWhitelisted ?? new PlayerUserList();
|
||||
|
||||
var file = Path.Combine(InstallDirectory, Config.Default.SavedFilesRelativePath, Config.Default.ServerWhitelistFile);
|
||||
if (File.Exists(file))
|
||||
{
|
||||
var steamIds = File.ReadAllLines(file);
|
||||
var steamUsers = SteamUtils.GetSteamUserDetails(steamIds.ToList());
|
||||
|
||||
list = PlayerUserList.GetList(steamUsers, steamIds);
|
||||
}
|
||||
|
||||
this.ServerFilesWhitelisted = list;
|
||||
}
|
||||
catch (IOException)
|
||||
{
|
||||
// do nothing
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
this.ServerFilesWhitelisted = new PlayerUserList();
|
||||
MessageBox.Show(ex.Message, _globalizer.GetResourceString("ServerSettings_ServerFilesLoadErrorTitle"), MessageBoxButton.OK, MessageBoxImage.Error);
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1130,7 +1130,7 @@ namespace ServerManagerTool
|
|||
Application.Current.Dispatcher.Invoke(() => this.Cursor = Cursors.Wait);
|
||||
await Task.Delay(500);
|
||||
|
||||
Settings.LoadServerFileBlacklisted();
|
||||
Settings.LoadServerFiles(true, false);
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
|
|
@ -1151,7 +1151,7 @@ namespace ServerManagerTool
|
|||
Application.Current.Dispatcher.Invoke(() => this.Cursor = Cursors.Wait);
|
||||
await Task.Delay(500);
|
||||
|
||||
Settings.LoadServerFileWhitelisted();
|
||||
Settings.LoadServerFiles(false, true);
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue