diff --git a/LogEntry.cs b/LogEntry.cs
index aa9232a..43bc55f 100644
--- a/LogEntry.cs
+++ b/LogEntry.cs
@@ -15,6 +15,7 @@ public class LogEntry
public static Color NormalColor { get; set; } = Color.FromArgb(System.Drawing.SystemColors.WindowText.A, System.Drawing.SystemColors.WindowText.R, System.Drawing.SystemColors.WindowText.G, System.Drawing.SystemColors.WindowText.B);
public static Color SuccessColor { get; set; } = Color.FromRgb(50, 175, 50);
public static Color ErrorColor { get; set; } = Color.FromRgb(175, 50, 50);
+ public static Color WarningColor { get; set; } = Color.FromRgb(255, 170, 0);
private string message;
private LogEntryType logMessageType;
private DateTime timeStamp;
@@ -53,6 +54,10 @@ public Color Color
{
return ErrorColor;
}
+ else if (Type == LogEntryType.Warning)
+ {
+ return WarningColor;
+ }
return NormalColor;
}
}
@@ -94,7 +99,8 @@ public enum LogEntryType
{
Normal,
Success,
- Error
+ Error,
+ Warning
}
public class LoggedMessageEventArgs : EventArgs
{
diff --git a/MainWindow.xaml b/MainWindow.xaml
index 90406a7..4a3452a 100644
--- a/MainWindow.xaml
+++ b/MainWindow.xaml
@@ -87,6 +87,7 @@
+
@@ -120,7 +121,8 @@
-
+
+
diff --git a/MainWindow.xaml.cs b/MainWindow.xaml.cs
index 92e4c29..6d97e30 100644
--- a/MainWindow.xaml.cs
+++ b/MainWindow.xaml.cs
@@ -75,6 +75,11 @@ public MainWindow()
radThemeLight.IsChecked = true;
radThemeLight_Checked(null, null);
}
+
+ if (Properties.Settings.Default.WriteAppLog)
+ {
+ System.IO.File.WriteAllText("vswlog.txt", "");
+ }
txtLog.Document.Blocks.Clear();
logMessage($"Version {typeof(MainWindow).Assembly.GetName().Version}");
CheckServerPath();
@@ -86,6 +91,7 @@ public MainWindow()
}
cmbServerType.SelectedIndex = Properties.Settings.Default.ServerInstallType;
chkAutoCheckUpdate.IsChecked = Properties.Settings.Default.AutoCheckUpdate;
+ chkLog.IsChecked = Properties.Settings.Default.WriteAppLog;
if (Properties.Settings.Default.AutoCheckUpdate)
{
checkForUpdate();
@@ -183,7 +189,7 @@ private void DgServers_ContextMenuOpening(object sender, ContextMenuEventArgs e)
}
ValheimServer server = ((ValheimServer)dgServers.SelectedItem);
serversMenuDetails.IsEnabled = true;
- serversMenuLog.IsEnabled = (File.Exists(server.GetLogName()));
+ serversMenuLog.IsEnabled = (File.Exists(server.LogRawName));
if (server.Running)
{
serversMenuStart.IsEnabled = false;
@@ -303,14 +309,14 @@ private void CheckServerPath()
}
private void btnServerPath_Click(object sender, RoutedEventArgs e)
{
- var serverpath = "";
- if (txtServerPath.Text != "") {
- serverpath = new FileInfo(txtServerPath.Text).Directory.FullName;
- }
var openFolderDialog = new System.Windows.Forms.FolderBrowserDialog();
- if (Directory.Exists(serverpath))
+ if (txtServerPath.Text != "")
{
- openFolderDialog.SelectedPath = serverpath;
+ var serverpath = new FileInfo(txtServerPath.Text).Directory.FullName;
+ if (Directory.Exists(serverpath))
+ {
+ openFolderDialog.SelectedPath = serverpath;
+ }
}
openFolderDialog.UseDescriptionForTitle = true;
openFolderDialog.Description = "Default server installation folder";
@@ -318,14 +324,14 @@ private void btnServerPath_Click(object sender, RoutedEventArgs e)
if (result == System.Windows.Forms.DialogResult.OK)
{
var folderName = openFolderDialog.SelectedPath;
- if (folderName.Equals(serverpath))
+ /*if (folderName+ "\\valheim_server.exe" == txtServerPath.Text)
{
return;
- }
+ }*/
if (!File.Exists($@"{folderName}\valheim_server.exe") && cmbServerType.SelectedIndex == (int)ValheimServer.ServerInstallMethod.SteamCMD && File.Exists(Properties.Settings.Default.SteamCMDPath))
{
var mmb = new ModernMessageBox(this);
- var install = mmb.Show("valheim_server.exe was not found in this folder, do you want to install it via SteamCMD?",
+ var install = mmb.Show($"valheim_server.exe was not found in {folderName}, do you want to install it via SteamCMD?",
"Install Valheim dedicated server?", MessageBoxButton.YesNo, MessageBoxImage.Question, MessageBoxResult.No);
if (install == MessageBoxResult.Yes)
{
@@ -656,8 +662,8 @@ private void StartServer(ValheimServer server)
{
if (s.Running)
{
- IEnumerable range = Enumerable.Range(s.Port, 3);
- if (range.Contains(server.Port) || range.Contains(server.Port + 1) || range.Contains(server.Port + 2))
+ IEnumerable range = Enumerable.Range(s.Port, 2);
+ if (range.Contains(server.Port) || range.Contains(server.Port + 1))
{
logMessage($"Server {s.Name} is already running on conflicting port {s.Port}.", LogEntryType.Error);
return;
@@ -786,12 +792,12 @@ public void logMessage(LogEntry entry)
}
}
});
- /*if (Properties.Settings.Default.CreateLogFile)
+ if (Properties.Settings.Default.WriteAppLog)
{
- StreamWriter writer = System.IO.File.AppendText("log.txt");
- writer.WriteLine(DateTime.Now.ToString() + ": " + msg);
+ StreamWriter writer = System.IO.File.AppendText("vswlog.txt");
+ writer.WriteLine(entry.TimeStamp+": " +entry.Message);
writer.Close();
- }*/
+ }
}
private void Window_StateChanged(object sender, EventArgs e)
@@ -1087,7 +1093,7 @@ private void serversMenuLog_Click(object sender, RoutedEventArgs e)
{
ValheimServer server = ((ValheimServer)dgServers.SelectedItem);
if (server == null) return;
- if (File.Exists(server.GetLogName()))
+ if (File.Exists(server.LogRawName))
{
ShowServerLog(server);
}
@@ -1135,14 +1141,14 @@ private void btnSteamCmdPath_Click(object sender, RoutedEventArgs e)
if (result == System.Windows.Forms.DialogResult.OK)
{
var folderName = openFolderDialog.SelectedPath;
- if (folderName.Equals(txtSteamCmdPath.Text))
+ /*if (folderName.Equals(txtSteamCmdPath.Text))
{
return;
- }
+ }*/
if (!File.Exists($@"{folderName}\steamcmd.exe"))
{
var mmb = new ModernMessageBox(this);
- var install = mmb.Show("steamcmd.exe was not found in this folder, do you want to install it?",
+ var install = mmb.Show($"steamcmd.exe was not found in {folderName}, do you want to install it?",
"Install SteamCMD?", MessageBoxButton.YesNo, MessageBoxImage.Question, MessageBoxResult.No);
if (install == MessageBoxResult.Yes)
{
@@ -1210,5 +1216,16 @@ private void menuLogClear_Click(object sender, RoutedEventArgs e)
txtLog.Document.Blocks.Clear();
logEntries.Clear();
}
+
+ private void chkLog_Checked(object sender, RoutedEventArgs e)
+ {
+ bool newValue = chkLog.IsChecked.HasValue ? chkLog.IsChecked.Value : false;
+ if (newValue & !Properties.Settings.Default.WriteAppLog)
+ {
+ System.IO.File.WriteAllText("vswlog.txt", DateTime.Now.ToString() + ": Version " + typeof(MainWindow).Assembly.GetName().Version + "\r\n");
+ }
+ Properties.Settings.Default.WriteAppLog = newValue;
+ Properties.Settings.Default.Save();
+ }
}
}
diff --git a/Properties/Settings.Designer.cs b/Properties/Settings.Designer.cs
index 0a86c62..6f3abba 100644
--- a/Properties/Settings.Designer.cs
+++ b/Properties/Settings.Designer.cs
@@ -130,5 +130,17 @@ public double MainWindowHeight {
this["MainWindowHeight"] = value;
}
}
+
+ [global::System.Configuration.UserScopedSettingAttribute()]
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ [global::System.Configuration.DefaultSettingValueAttribute("False")]
+ public bool WriteAppLog {
+ get {
+ return ((bool)(this["WriteAppLog"]));
+ }
+ set {
+ this["WriteAppLog"] = value;
+ }
+ }
}
}
diff --git a/Properties/Settings.settings b/Properties/Settings.settings
index 0e23560..4eab179 100644
--- a/Properties/Settings.settings
+++ b/Properties/Settings.settings
@@ -29,5 +29,8 @@
0
+
+ False
+
\ No newline at end of file
diff --git a/ServerDetailsWindow.xaml b/ServerDetailsWindow.xaml
index 0183d59..9f7b90a 100644
--- a/ServerDetailsWindow.xaml
+++ b/ServerDetailsWindow.xaml
@@ -98,7 +98,7 @@
-
+
diff --git a/ServerDetailsWindow.xaml.cs b/ServerDetailsWindow.xaml.cs
index 7e8008f..e8c439e 100644
--- a/ServerDetailsWindow.xaml.cs
+++ b/ServerDetailsWindow.xaml.cs
@@ -138,8 +138,8 @@ public void RefreshControls()
{
menuSteamCmdUpdate.Visibility = Visibility.Collapsed;
}
- btnLog.IsEnabled = (File.Exists(Server.GetLogName()));
- btnLog.Visibility = (File.Exists(Server.GetLogName())) ? Visibility.Visible : Visibility.Hidden;
+ btnLog.IsEnabled = (File.Exists(Server.LogRawName));
+ btnLog.Visibility = (File.Exists(Server.LogRawName)) ? Visibility.Visible : Visibility.Hidden;
if (Properties.Settings.Default.SteamCMDPath != null && Properties.Settings.Default.SteamCMDPath.Length > 0 && File.Exists(Properties.Settings.Default.SteamCMDPath) && Server.InstallMethod == ValheimServer.ServerInstallMethod.SteamCMD)
{
@@ -215,7 +215,14 @@ private void ServerToControls()
txtPassword.Text = Server.Password;
txtSaveDir.Text = Server.SaveDir;
chkPublic.IsChecked = Server.Public;
- txtServerDir.Text = Server.InstallPath;
+ if (Server.InstallPath != null)
+ {
+ txtServerDir.Text = Server.InstallPath;
+ }
+ else if (Properties.Settings.Default.ServerFilePath != null)
+ {
+ txtServerDir.Text = Properties.Settings.Default.ServerFilePath;
+ }
cmbServerType.SelectedIndex = (int)Server.InstallMethod;
chkAutostart.IsChecked = Server.Autostart;
chkRawLog.IsChecked = Server.RawLog;
@@ -552,11 +559,14 @@ private void Window_ContentRendered(object sender, EventArgs e)
private void btnServerDir_Click(object sender, RoutedEventArgs e)
{
- var serverpath = new FileInfo(txtServerDir.Text).Directory.FullName;
var openFolderDialog = new System.Windows.Forms.FolderBrowserDialog();
- if (Directory.Exists(serverpath))
+ if (txtServerDir.Text != null)
{
- openFolderDialog.SelectedPath = serverpath;
+ var serverpath = new FileInfo(txtServerDir.Text).Directory.FullName;
+ if (Directory.Exists(serverpath))
+ {
+ openFolderDialog.SelectedPath = serverpath;
+ }
}
openFolderDialog.UseDescriptionForTitle = true;
openFolderDialog.Description = "Server installation folder";
@@ -564,10 +574,10 @@ private void btnServerDir_Click(object sender, RoutedEventArgs e)
if (result == System.Windows.Forms.DialogResult.OK)
{
var folderName = openFolderDialog.SelectedPath;
- if (folderName.Equals(serverpath))
+ /*if (folderName.Equals(serverpath))
{
return;
- }
+ }*/
if (!File.Exists($@"{folderName}\valheim_server.exe") && cmbServerType.SelectedIndex == (int)ValheimServer.ServerInstallMethod.SteamCMD && File.Exists(Properties.Settings.Default.SteamCMDPath))
{
var mmb = new ModernMessageBox(this);
diff --git a/ServerLogWindow.xaml.cs b/ServerLogWindow.xaml.cs
index 3261501..3033253 100644
--- a/ServerLogWindow.xaml.cs
+++ b/ServerLogWindow.xaml.cs
@@ -32,7 +32,7 @@ public ServerLogWindow(ValheimServer server)
{
InitializeComponent();
_server = server;
- this.Title = $"{server.GetLogName()} (does not update live)";
+ this.Title = $"{server.LogRawName} (does not update live)";
LoadLogText();
}
@@ -40,10 +40,10 @@ public void LoadLogText()
{
try
{
- if (File.Exists(_server.GetLogName()))
+ if (File.Exists(_server.LogRawName))
{
txtLog.Document.Blocks.Clear();
- Run run = new Run(File.ReadAllText(_server.GetLogName()));
+ Run run = new Run(File.ReadAllText(_server.LogRawName));
Paragraph paragraph = new Paragraph(run);
paragraph.Margin = new Thickness(0);
txtLog.Document.Blocks.Add(paragraph);
diff --git a/ValheimServer.cs b/ValheimServer.cs
index 905b963..e58019a 100644
--- a/ValheimServer.cs
+++ b/ValheimServer.cs
@@ -402,18 +402,24 @@ private void RestartTimer_Elapsed(object sender, System.Timers.ElapsedEventArgs
{
}
- public string GetLogName()
+ public string LogRawName
{
- string logname = this.DisplayName.Replace(" ", "_");
- logname = Regex.Replace(logname, @"[<]", "[");
- logname = Regex.Replace(logname, @"[>]", "]");
- foreach (var c in Path.GetInvalidFileNameChars()) { logname = logname.Replace(c, '-'); }
- //Regex rgx = new Regex("[^a-zA-Z0-9_-]");
- //logname = rgx.Replace(logname, "");
- //return $"{logname}-{this.startTime.ToString("yyyy-MM-dd_HH-mm-ss")}.log";
- return $"{logname}-{this.Port}-{this.World}.log";
+ get
+ {
+ return LogName.Replace(".log", "-raw.log");
+ }
+ }
+ public string LogName
+ {
+ get
+ {
+ string logname = this.DisplayName.Replace(" ", "_");
+ logname = Regex.Replace(logname, @"[<]", "[");
+ logname = Regex.Replace(logname, @"[>]", "]");
+ foreach (var c in Path.GetInvalidFileNameChars()) { logname = logname.Replace(c, '-'); }
+ return $"{logname}-{this.Port}-{this.World}.log";
+ }
}
-
public double GetMilisecondsUntilRestart()
{
DateTime restartTime = this.startTime.AddHours(this.RestartHours);
@@ -483,7 +489,7 @@ private void Process_OutputDataReceived(object sender, DataReceivedEventArgs e)
{
try
{
- StreamWriter writer = System.IO.File.AppendText(this.GetLogName());
+ StreamWriter writer = System.IO.File.AppendText(LogRawName);
writer.WriteLine(msg);
writer.Close();
}
@@ -658,7 +664,7 @@ public void Start()
{
if (this.RawLog)
{
- System.IO.File.WriteAllText(this.GetLogName(),"");
+ System.IO.File.WriteAllText(LogRawName,"");
}
this.startTime = DateTime.Now;
if (this.RestartHours > 0)
diff --git a/ValheimServerWarden.csproj b/ValheimServerWarden.csproj
index 0309e3f..8c59fd2 100644
--- a/ValheimServerWarden.csproj
+++ b/ValheimServerWarden.csproj
@@ -6,14 +6,14 @@
true
true
ValheimServerWarden.App
- 0.4.6
- 0.4.6.0
+ 0.4.7
+ 0.4.7.0
ValheimServerWarden
Razzmatazz
Resources\vsw2.ico
ValheimServerWarden
Valheim Server Warden
- 0.4.6.0
+ 0.4.7.0
ValheimServerWarden