mirror of
https://github.com/tribufu/ServerManagers
synced 2026-06-01 09:42:39 +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;
|
InstallDirectory = folder;
|
||||||
|
|
||||||
LoadServerFileAdministrators();
|
LoadServerFiles(true, true, true);
|
||||||
LoadServerFileExclusive();
|
|
||||||
LoadServerFileWhitelisted();
|
|
||||||
SetupServerFilesWatcher();
|
SetupServerFilesWatcher();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -3561,9 +3559,7 @@ namespace ServerManagerTool.Lib
|
||||||
settings.MutagenLevelBoostBred.Reset();
|
settings.MutagenLevelBoostBred.Reset();
|
||||||
settings.PerLevelStatsMultiplier_Player.Reset();
|
settings.PerLevelStatsMultiplier_Player.Reset();
|
||||||
settings.PlayerBaseStatMultipliers.Reset();
|
settings.PlayerBaseStatMultipliers.Reset();
|
||||||
settings.LoadServerFileAdministrators();
|
settings.LoadServerFiles(true, true, true);
|
||||||
settings.LoadServerFileExclusive();
|
|
||||||
settings.LoadServerFileWhitelisted();
|
|
||||||
settings.SetupServerFilesWatcher();
|
settings.SetupServerFilesWatcher();
|
||||||
return settings;
|
return settings;
|
||||||
}
|
}
|
||||||
|
|
@ -4140,9 +4136,7 @@ namespace ServerManagerTool.Lib
|
||||||
if (Config.Default.SectionPreventTransferOverridesEnabled)
|
if (Config.Default.SectionPreventTransferOverridesEnabled)
|
||||||
profile.PreventTransferForClassNames.RenderToView();
|
profile.PreventTransferForClassNames.RenderToView();
|
||||||
|
|
||||||
profile.LoadServerFileAdministrators();
|
profile.LoadServerFiles(true, true, true);
|
||||||
profile.LoadServerFileExclusive();
|
|
||||||
profile.LoadServerFileWhitelisted();
|
|
||||||
profile.SetupServerFilesWatcher();
|
profile.SetupServerFilesWatcher();
|
||||||
|
|
||||||
profile._lastSaveLocation = file;
|
profile._lastSaveLocation = file;
|
||||||
|
|
@ -6364,18 +6358,24 @@ namespace ServerManagerTool.Lib
|
||||||
#region Server Files
|
#region Server Files
|
||||||
private void ServerFilesWatcher_Changed(object sender, FileSystemEventArgs e)
|
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))
|
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)
|
private void ServerFilesWatcher_Error(object sender, ErrorEventArgs e)
|
||||||
|
|
@ -6447,74 +6447,76 @@ namespace ServerManagerTool.Lib
|
||||||
_serverFilesWatcherSaved.EnableRaisingEvents = true;
|
_serverFilesWatcherSaved.EnableRaisingEvents = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void LoadServerFileAdministrators()
|
public void LoadServerFiles(bool adminFile, bool exclusiveFile, bool whitelistFile)
|
||||||
{
|
{
|
||||||
try
|
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);
|
var allSteamIds = new List<string>();
|
||||||
if (File.Exists(file))
|
string[] adminSteamIds = null;
|
||||||
|
string[] exclusiveSteamIds = null;
|
||||||
|
string[] whitelistSteamIds = null;
|
||||||
|
|
||||||
|
if (adminFile)
|
||||||
{
|
{
|
||||||
var steamIds = File.ReadAllLines(file);
|
var file = Path.Combine(InstallDirectory, Config.Default.SavedRelativePath, Config.Default.ArkAdminFile);
|
||||||
var steamUsers = SteamUtils.GetSteamUserDetails(steamIds.ToList());
|
if (File.Exists(file))
|
||||||
|
{
|
||||||
list = PlayerUserList.GetList(steamUsers, steamIds);
|
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)
|
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);
|
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);
|
Application.Current.Dispatcher.Invoke(() => this.Cursor = Cursors.Wait);
|
||||||
await Task.Delay(500);
|
await Task.Delay(500);
|
||||||
|
|
||||||
Settings.LoadServerFileAdministrators();
|
Settings.LoadServerFiles(true, false, false);
|
||||||
}
|
}
|
||||||
catch (Exception ex)
|
catch (Exception ex)
|
||||||
{
|
{
|
||||||
|
|
@ -2714,7 +2714,7 @@ namespace ServerManagerTool
|
||||||
Application.Current.Dispatcher.Invoke(() => this.Cursor = Cursors.Wait);
|
Application.Current.Dispatcher.Invoke(() => this.Cursor = Cursors.Wait);
|
||||||
await Task.Delay(500);
|
await Task.Delay(500);
|
||||||
|
|
||||||
Settings.LoadServerFileExclusive();
|
Settings.LoadServerFiles(false, true, false);
|
||||||
}
|
}
|
||||||
catch (Exception ex)
|
catch (Exception ex)
|
||||||
{
|
{
|
||||||
|
|
@ -2735,7 +2735,7 @@ namespace ServerManagerTool
|
||||||
Application.Current.Dispatcher.Invoke(() => this.Cursor = Cursors.Wait);
|
Application.Current.Dispatcher.Invoke(() => this.Cursor = Cursors.Wait);
|
||||||
await Task.Delay(500);
|
await Task.Delay(500);
|
||||||
|
|
||||||
Settings.LoadServerFileWhitelisted();
|
Settings.LoadServerFiles(false, false, true);
|
||||||
}
|
}
|
||||||
catch (Exception ex)
|
catch (Exception ex)
|
||||||
{
|
{
|
||||||
|
|
|
||||||
|
|
@ -688,8 +688,7 @@ namespace ServerManagerTool.Lib
|
||||||
{
|
{
|
||||||
InstallDirectory = folder;
|
InstallDirectory = folder;
|
||||||
|
|
||||||
LoadServerFileBlacklisted();
|
LoadServerFiles(true, true);
|
||||||
LoadServerFileWhitelisted();
|
|
||||||
SetupServerFilesWatcher();
|
SetupServerFilesWatcher();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -759,8 +758,7 @@ namespace ServerManagerTool.Lib
|
||||||
internal static ServerProfile FromDefaults()
|
internal static ServerProfile FromDefaults()
|
||||||
{
|
{
|
||||||
var settings = new ServerProfile();
|
var settings = new ServerProfile();
|
||||||
settings.LoadServerFileBlacklisted();
|
settings.LoadServerFiles(true, true);
|
||||||
settings.LoadServerFileWhitelisted();
|
|
||||||
settings.SetupServerFilesWatcher();
|
settings.SetupServerFilesWatcher();
|
||||||
return settings;
|
return settings;
|
||||||
}
|
}
|
||||||
|
|
@ -949,8 +947,7 @@ namespace ServerManagerTool.Lib
|
||||||
profile = LoadFromConfigFiles(serverConfigFile, profile);
|
profile = LoadFromConfigFiles(serverConfigFile, profile);
|
||||||
}
|
}
|
||||||
|
|
||||||
profile.LoadServerFileBlacklisted();
|
profile.LoadServerFiles(true, true);
|
||||||
profile.LoadServerFileWhitelisted();
|
|
||||||
profile.SetupServerFilesWatcher();
|
profile.SetupServerFilesWatcher();
|
||||||
|
|
||||||
profile._lastSaveLocation = file;
|
profile._lastSaveLocation = file;
|
||||||
|
|
@ -1536,14 +1533,19 @@ namespace ServerManagerTool.Lib
|
||||||
#region Server Files
|
#region Server Files
|
||||||
private void ServerFilesWatcher_Changed(object sender, FileSystemEventArgs e)
|
private void ServerFilesWatcher_Changed(object sender, FileSystemEventArgs e)
|
||||||
{
|
{
|
||||||
|
var blacklistFile = false;
|
||||||
|
var whitelistFile = false;
|
||||||
|
|
||||||
if (e.Name.Equals(Config.Default.ServerBlacklistFile, StringComparison.OrdinalIgnoreCase))
|
if (e.Name.Equals(Config.Default.ServerBlacklistFile, StringComparison.OrdinalIgnoreCase))
|
||||||
{
|
{
|
||||||
TaskUtils.RunOnUIThreadAsync(() => LoadServerFileBlacklisted()).DoNotWait();
|
blacklistFile = true;
|
||||||
}
|
}
|
||||||
if (e.Name.Equals(Config.Default.ServerWhitelistFile, StringComparison.OrdinalIgnoreCase))
|
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)
|
private void ServerFilesWatcher_Error(object sender, ErrorEventArgs e)
|
||||||
|
|
@ -1589,58 +1591,58 @@ namespace ServerManagerTool.Lib
|
||||||
_serverFilesWatcher.EnableRaisingEvents = true;
|
_serverFilesWatcher.EnableRaisingEvents = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void LoadServerFileBlacklisted()
|
public void LoadServerFiles(bool blacklistFile, bool whitelistFile)
|
||||||
{
|
{
|
||||||
try
|
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);
|
var allSteamIds = new List<string>();
|
||||||
if (File.Exists(file))
|
string[] blacklistSteamIds = null;
|
||||||
|
string[] whitelistSteamIds = null;
|
||||||
|
|
||||||
|
if (blacklistFile)
|
||||||
{
|
{
|
||||||
var steamIds = File.ReadAllLines(file);
|
var file = Path.Combine(InstallDirectory, Config.Default.ServerBinaryRelativePath, Config.Default.ServerBlacklistFile);
|
||||||
var steamUsers = SteamUtils.GetSteamUserDetails(steamIds.ToList());
|
if (File.Exists(file))
|
||||||
|
{
|
||||||
list = PlayerUserList.GetList(steamUsers, steamIds);
|
blacklistSteamIds = File.ReadAllLines(file);
|
||||||
|
allSteamIds.AddRange(blacklistSteamIds);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
this.ServerFilesBlacklisted = list;
|
if (whitelistFile)
|
||||||
}
|
{
|
||||||
catch (IOException)
|
var file = Path.Combine(InstallDirectory, Config.Default.ServerBinaryRelativePath, Config.Default.ServerWhitelistFile);
|
||||||
{
|
if (File.Exists(file))
|
||||||
// do nothing
|
{
|
||||||
|
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)
|
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);
|
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);
|
Application.Current.Dispatcher.Invoke(() => this.Cursor = Cursors.Wait);
|
||||||
await Task.Delay(500);
|
await Task.Delay(500);
|
||||||
|
|
||||||
Settings.LoadServerFileBlacklisted();
|
Settings.LoadServerFiles(true, false);
|
||||||
}
|
}
|
||||||
catch (Exception ex)
|
catch (Exception ex)
|
||||||
{
|
{
|
||||||
|
|
@ -1151,7 +1151,7 @@ namespace ServerManagerTool
|
||||||
Application.Current.Dispatcher.Invoke(() => this.Cursor = Cursors.Wait);
|
Application.Current.Dispatcher.Invoke(() => this.Cursor = Cursors.Wait);
|
||||||
await Task.Delay(500);
|
await Task.Delay(500);
|
||||||
|
|
||||||
Settings.LoadServerFileWhitelisted();
|
Settings.LoadServerFiles(false, true);
|
||||||
}
|
}
|
||||||
catch (Exception ex)
|
catch (Exception ex)
|
||||||
{
|
{
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue