diff --git a/.editorconfig b/.editorconfig
new file mode 100644
index 0000000..a1c6059
--- /dev/null
+++ b/.editorconfig
@@ -0,0 +1,263 @@
+# Remove the line below if you want to inherit .editorconfig settings from higher directories
+root = true
+
+# C# files
+[*.cs]
+
+#### Core EditorConfig Options ####
+
+# Indentation and spacing
+indent_size = 4
+indent_style = space
+tab_width = 4
+
+# New line preferences
+end_of_line = crlf
+insert_final_newline = false
+
+#### .NET Coding Conventions ####
+
+# Organize usings
+dotnet_separate_import_directive_groups = false
+dotnet_sort_system_directives_first = false
+file_header_template = unset
+
+# this. and Me. preferences
+dotnet_style_qualification_for_event = false
+dotnet_style_qualification_for_field = false
+dotnet_style_qualification_for_method = false
+dotnet_style_qualification_for_property = false
+
+# Language keywords vs BCL types preferences
+dotnet_style_predefined_type_for_locals_parameters_members = true
+dotnet_style_predefined_type_for_member_access = true
+
+# Parentheses preferences
+dotnet_style_parentheses_in_arithmetic_binary_operators = always_for_clarity
+dotnet_style_parentheses_in_other_binary_operators = always_for_clarity
+dotnet_style_parentheses_in_other_operators = never_if_unnecessary
+dotnet_style_parentheses_in_relational_binary_operators = always_for_clarity
+
+# Modifier preferences
+dotnet_style_require_accessibility_modifiers = for_non_interface_members
+
+# Expression-level preferences
+dotnet_style_coalesce_expression = true
+dotnet_style_collection_initializer = true
+dotnet_style_explicit_tuple_names = true
+dotnet_style_namespace_match_folder = true
+dotnet_style_null_propagation = true
+dotnet_style_object_initializer = true
+dotnet_style_operator_placement_when_wrapping = beginning_of_line
+dotnet_style_prefer_auto_properties = true
+dotnet_style_prefer_collection_expression = when_types_loosely_match
+dotnet_style_prefer_compound_assignment = true
+dotnet_style_prefer_conditional_expression_over_assignment = true
+dotnet_style_prefer_conditional_expression_over_return = true
+dotnet_style_prefer_foreach_explicit_cast_in_source = when_strongly_typed
+dotnet_style_prefer_inferred_anonymous_type_member_names = true
+dotnet_style_prefer_inferred_tuple_names = true
+dotnet_style_prefer_is_null_check_over_reference_equality_method = true
+dotnet_style_prefer_simplified_boolean_expressions = true
+dotnet_style_prefer_simplified_interpolation = true
+
+# Field preferences
+dotnet_style_readonly_field = true
+
+# Parameter preferences
+dotnet_code_quality_unused_parameters = all
+
+# Suppression preferences
+dotnet_remove_unnecessary_suppression_exclusions = none
+
+# New line preferences
+dotnet_style_allow_multiple_blank_lines_experimental = true
+dotnet_style_allow_statement_immediately_after_block_experimental = true
+
+#### C# Coding Conventions ####
+
+# var preferences
+csharp_style_var_elsewhere = false
+csharp_style_var_for_built_in_types = false
+csharp_style_var_when_type_is_apparent = false
+
+# Expression-bodied members
+csharp_style_expression_bodied_accessors = true:silent
+csharp_style_expression_bodied_constructors = false:silent
+csharp_style_expression_bodied_indexers = true:silent
+csharp_style_expression_bodied_lambdas = true:silent
+csharp_style_expression_bodied_local_functions = false:silent
+csharp_style_expression_bodied_methods = false:silent
+csharp_style_expression_bodied_operators = false:silent
+csharp_style_expression_bodied_properties = true:silent
+
+# Pattern matching preferences
+csharp_style_pattern_matching_over_as_with_null_check = true
+csharp_style_pattern_matching_over_is_with_cast_check = true
+csharp_style_prefer_extended_property_pattern = true
+csharp_style_prefer_not_pattern = true
+csharp_style_prefer_pattern_matching = true
+csharp_style_prefer_switch_expression = true
+
+# Null-checking preferences
+csharp_style_conditional_delegate_call = true
+
+# Modifier preferences
+csharp_prefer_static_local_function = true
+csharp_preferred_modifier_order = public,private,protected,internal,file,static,extern,new,virtual,abstract,sealed,override,readonly,unsafe,required,volatile,async
+csharp_style_prefer_readonly_struct = true
+csharp_style_prefer_readonly_struct_member = true
+
+# Code-block preferences
+csharp_prefer_braces = true:silent
+csharp_prefer_simple_using_statement = true:suggestion
+csharp_style_namespace_declarations = block_scoped:silent
+csharp_style_prefer_method_group_conversion = true:silent
+csharp_style_prefer_primary_constructors = true:suggestion
+csharp_style_prefer_top_level_statements = true:silent
+
+# Expression-level preferences
+csharp_prefer_simple_default_expression = true
+csharp_style_deconstructed_variable_declaration = true
+csharp_style_implicit_object_creation_when_type_is_apparent = true
+csharp_style_inlined_variable_declaration = true
+csharp_style_prefer_index_operator = true
+csharp_style_prefer_local_over_anonymous_function = true
+csharp_style_prefer_null_check_over_type_check = true
+csharp_style_prefer_range_operator = true
+csharp_style_prefer_tuple_swap = true
+csharp_style_prefer_utf8_string_literals = true
+csharp_style_throw_expression = true
+csharp_style_unused_value_assignment_preference = discard_variable
+csharp_style_unused_value_expression_statement_preference = discard_variable
+
+# 'using' directive preferences
+csharp_using_directive_placement = outside_namespace:silent
+
+# New line preferences
+csharp_style_allow_blank_line_after_colon_in_constructor_initializer_experimental = true
+csharp_style_allow_blank_line_after_token_in_arrow_expression_clause_experimental = true
+csharp_style_allow_blank_line_after_token_in_conditional_expression_experimental = true
+csharp_style_allow_blank_lines_between_consecutive_braces_experimental = true
+csharp_style_allow_embedded_statements_on_same_line_experimental = true
+
+#### C# Formatting Rules ####
+
+# New line preferences
+csharp_new_line_before_catch = true
+csharp_new_line_before_else = true
+csharp_new_line_before_finally = true
+csharp_new_line_before_members_in_anonymous_types = true
+csharp_new_line_before_members_in_object_initializers = true
+csharp_new_line_before_open_brace = all
+csharp_new_line_between_query_expression_clauses = true
+
+# Indentation preferences
+csharp_indent_block_contents = true
+csharp_indent_braces = false
+csharp_indent_case_contents = true
+csharp_indent_case_contents_when_block = true
+csharp_indent_labels = one_less_than_current
+csharp_indent_switch_labels = true
+
+# Space preferences
+csharp_space_after_cast = false
+csharp_space_after_colon_in_inheritance_clause = true
+csharp_space_after_comma = true
+csharp_space_after_dot = false
+csharp_space_after_keywords_in_control_flow_statements = true
+csharp_space_after_semicolon_in_for_statement = true
+csharp_space_around_binary_operators = before_and_after
+csharp_space_around_declaration_statements = false
+csharp_space_before_colon_in_inheritance_clause = true
+csharp_space_before_comma = false
+csharp_space_before_dot = false
+csharp_space_before_open_square_brackets = false
+csharp_space_before_semicolon_in_for_statement = false
+csharp_space_between_empty_square_brackets = false
+csharp_space_between_method_call_empty_parameter_list_parentheses = false
+csharp_space_between_method_call_name_and_opening_parenthesis = false
+csharp_space_between_method_call_parameter_list_parentheses = false
+csharp_space_between_method_declaration_empty_parameter_list_parentheses = false
+csharp_space_between_method_declaration_name_and_open_parenthesis = false
+csharp_space_between_method_declaration_parameter_list_parentheses = false
+csharp_space_between_parentheses = false
+csharp_space_between_square_brackets = false
+
+# Wrapping preferences
+csharp_preserve_single_line_blocks = true
+csharp_preserve_single_line_statements = true
+
+#### Naming styles ####
+
+# Naming rules
+
+dotnet_naming_rule.interface_should_be_begins_with_i.severity = suggestion
+dotnet_naming_rule.interface_should_be_begins_with_i.symbols = interface
+dotnet_naming_rule.interface_should_be_begins_with_i.style = begins_with_i
+
+dotnet_naming_rule.types_should_be_pascal_case.severity = suggestion
+dotnet_naming_rule.types_should_be_pascal_case.symbols = types
+dotnet_naming_rule.types_should_be_pascal_case.style = pascal_case
+
+dotnet_naming_rule.non_field_members_should_be_pascal_case.severity = suggestion
+dotnet_naming_rule.non_field_members_should_be_pascal_case.symbols = non_field_members
+dotnet_naming_rule.non_field_members_should_be_pascal_case.style = pascal_case
+
+# Symbol specifications
+
+dotnet_naming_symbols.interface.applicable_kinds = interface
+dotnet_naming_symbols.interface.applicable_accessibilities = public, internal, private, protected, protected_internal, private_protected
+dotnet_naming_symbols.interface.required_modifiers =
+
+dotnet_naming_symbols.types.applicable_kinds = class, struct, interface, enum
+dotnet_naming_symbols.types.applicable_accessibilities = public, internal, private, protected, protected_internal, private_protected
+dotnet_naming_symbols.types.required_modifiers =
+
+dotnet_naming_symbols.non_field_members.applicable_kinds = property, event, method
+dotnet_naming_symbols.non_field_members.applicable_accessibilities = public, internal, private, protected, protected_internal, private_protected
+dotnet_naming_symbols.non_field_members.required_modifiers =
+
+# Naming styles
+
+dotnet_naming_style.pascal_case.required_prefix =
+dotnet_naming_style.pascal_case.required_suffix =
+dotnet_naming_style.pascal_case.word_separator =
+dotnet_naming_style.pascal_case.capitalization = pascal_case
+
+dotnet_naming_style.begins_with_i.required_prefix = I
+dotnet_naming_style.begins_with_i.required_suffix =
+dotnet_naming_style.begins_with_i.word_separator =
+dotnet_naming_style.begins_with_i.capitalization = pascal_case
+dotnet_diagnostic.SA1309.severity = none
+dotnet_diagnostic.SX1309.severity = error
+dotnet_diagnostic.SA1633.severity = none
+dotnet_diagnostic.SA1634.severity = none
+dotnet_diagnostic.SA1635.severity = none
+dotnet_diagnostic.SA1636.severity = none
+dotnet_diagnostic.SA1637.severity = none
+dotnet_diagnostic.SA1638.severity = none
+dotnet_diagnostic.SA1639.severity = none
+dotnet_diagnostic.SA1640.severity = none
+dotnet_diagnostic.SA1641.severity = none
+dotnet_diagnostic.SA1101.severity = none
+
+[*.{cs,vb}]
+dotnet_style_operator_placement_when_wrapping = beginning_of_line
+tab_width = 4
+indent_size = 4
+end_of_line = crlf
+dotnet_style_coalesce_expression = true:suggestion
+dotnet_style_null_propagation = true:suggestion
+dotnet_style_prefer_is_null_check_over_reference_equality_method = true:suggestion
+dotnet_style_prefer_auto_properties = true:silent
+dotnet_style_object_initializer = true:suggestion
+dotnet_style_collection_initializer = true:suggestion
+dotnet_style_prefer_simplified_boolean_expressions = true:suggestion
+dotnet_style_prefer_conditional_expression_over_assignment = true:silent
+dotnet_style_prefer_conditional_expression_over_return = true:silent
+dotnet_style_explicit_tuple_names = true:suggestion
+dotnet_style_prefer_inferred_tuple_names = true:suggestion
+dotnet_style_prefer_inferred_anonymous_type_member_names = true:suggestion
+dotnet_style_prefer_compound_assignment = true:suggestion
+dotnet_style_prefer_simplified_interpolation = true:suggestion
\ No newline at end of file
diff --git a/.github/workflows/dotnet-desktop.yml b/.github/workflows/dotnet-desktop.yml
new file mode 100644
index 0000000..86c73db
--- /dev/null
+++ b/.github/workflows/dotnet-desktop.yml
@@ -0,0 +1,28 @@
+name: dotnet-desktop
+
+on: [push, pull_request]
+
+jobs:
+ build:
+ runs-on: windows-latest
+ env:
+ Solution_Name: ValheimServer/ValheimServer.sln
+
+ steps:
+ - name: Checkout code
+ uses: actions/checkout@v4
+
+ - name: Set up .NET
+ uses: actions/setup-dotnet@v4
+ with:
+ dotnet-version: '8.0.x'
+
+ - name: Restore dependencies
+ run: dotnet restore $env:Solution_Name
+
+ - name: Build
+ run: dotnet build $env:Solution_Name --no-restore --configuration Release
+
+ - name: Run StyleCop Analyzers
+ run: dotnet build $env:Solution_Name --no-restore --configuration Release /p:TreatWarningsAsErrors=true /p:WarningsAsErrors=SA*
+
\ No newline at end of file
diff --git a/ValheimServer/ValheimServer/App.xaml.cs b/ValheimServer/ValheimServer/App.xaml.cs
index 70cf1c6..5b86b36 100644
--- a/ValheimServer/ValheimServer/App.xaml.cs
+++ b/ValheimServer/ValheimServer/App.xaml.cs
@@ -9,7 +9,7 @@
namespace ValheimServer
{
///
- /// Interaction logic for App.xaml
+ /// Interaction logic for App.xaml.
///
public partial class App : Application
{
diff --git a/ValheimServer/ValheimServer/AssemblyInfo.cs b/ValheimServer/ValheimServer/AssemblyInfo.cs
index 8b5504e..7025726 100644
--- a/ValheimServer/ValheimServer/AssemblyInfo.cs
+++ b/ValheimServer/ValheimServer/AssemblyInfo.cs
@@ -1,10 +1,5 @@
using System.Windows;
[assembly: ThemeInfo(
- ResourceDictionaryLocation.None, //where theme specific resource dictionaries are located
- //(used if a resource is not found in the page,
- // or application resource dictionaries)
- ResourceDictionaryLocation.SourceAssembly //where the generic resource dictionary is located
- //(used if a resource is not found in the page,
- // app, or any theme specific resource dictionaries)
-)]
+ ResourceDictionaryLocation.None,
+ ResourceDictionaryLocation.SourceAssembly)]
diff --git a/ValheimServer/ValheimServer/Components/BindablePasswordBox.xaml.cs b/ValheimServer/ValheimServer/Components/BindablePasswordBox.xaml.cs
index 8eefca8..ad6afbd 100644
--- a/ValheimServer/ValheimServer/Components/BindablePasswordBox.xaml.cs
+++ b/ValheimServer/ValheimServer/Components/BindablePasswordBox.xaml.cs
@@ -16,34 +16,45 @@
namespace ValheimServer.Components
{
///
- /// Interaction logic for BindablePasswordBox.xaml
+ /// Interaction logic for BindablePasswordBox.xaml.
///
public partial class BindablePasswordBox : UserControl
{
- private bool _isPasswordChanging;
-
- // Using a DependencyProperty as the backing store for Password. This enables animation, styling, binding, etc...
+ ///
+ /// Using a DependencyProperty as the backing store for Password. This enables animation, styling, binding, etc...
+ ///
public static readonly DependencyProperty PasswordProperty =
- DependencyProperty.Register("Password", typeof(string), typeof(BindablePasswordBox),
+ DependencyProperty.Register(
+ "Password",
+ typeof(string),
+ typeof(BindablePasswordBox),
new PropertyMetadata(string.Empty, PasswordPropertyChanged));
- private static void PasswordPropertyChanged(DependencyObject d, DependencyPropertyChangedEventArgs e)
+ private bool _isPasswordChanging;
+
+ ///
+ /// Initializes a new instance of the class.
+ ///
+ public BindablePasswordBox()
{
- if (d is BindablePasswordBox passwordBox)
- {
- passwordBox.UpdatePassword();
- }
+ InitializeComponent();
}
+ ///
+ /// Gets or sets the password.
+ ///
public string Password
{
get { return (string)GetValue(PasswordProperty); }
set { SetValue(PasswordProperty, value); }
}
- public BindablePasswordBox()
+ private static void PasswordPropertyChanged(DependencyObject d, DependencyPropertyChangedEventArgs e)
{
- InitializeComponent();
+ if (d is BindablePasswordBox passwordBox)
+ {
+ passwordBox.UpdatePassword();
+ }
}
private void PasswordBox_PasswordChanged(object sender, RoutedEventArgs e)
@@ -59,7 +70,6 @@ private void UpdatePassword()
{
passwordBox.Password = Password;
}
-
}
}
}
diff --git a/ValheimServer/ValheimServer/MainWindow.xaml.cs b/ValheimServer/ValheimServer/MainWindow.xaml.cs
index 2b8c8fa..c7ad958 100644
--- a/ValheimServer/ValheimServer/MainWindow.xaml.cs
+++ b/ValheimServer/ValheimServer/MainWindow.xaml.cs
@@ -19,16 +19,16 @@
namespace ValheimServer
{
///
- /// Interaction logic for MainWindow.xaml
+ /// Interaction logic for MainWindow.xaml.
///
public partial class MainWindow : Window
{
-
+ ///
+ /// Initializes a new instance of the class.
+ ///
public MainWindow()
{
InitializeComponent();
}
-
-
}
}
\ No newline at end of file
diff --git a/ValheimServer/ValheimServer/ValheimServer.csproj b/ValheimServer/ValheimServer/ValheimServer.csproj
index d3a58e1..4c93cec 100644
--- a/ValheimServer/ValheimServer/ValheimServer.csproj
+++ b/ValheimServer/ValheimServer/ValheimServer.csproj
@@ -6,10 +6,17 @@
enable
true
True
+ true
+ true
+ SA*
+
+ all
+ runtime; build; native; contentfiles; analyzers; buildtransitive
+
@@ -47,4 +54,9 @@
+
+
+
+
+
diff --git a/ValheimServer/ValheimServer/ViewModels/MainWindowViewModel.cs b/ValheimServer/ValheimServer/ViewModels/MainWindowViewModel.cs
index d8025c3..4efd7b8 100644
--- a/ValheimServer/ValheimServer/ViewModels/MainWindowViewModel.cs
+++ b/ValheimServer/ValheimServer/ViewModels/MainWindowViewModel.cs
@@ -1,6 +1,5 @@
using CommunityToolkit.Mvvm.ComponentModel;
using CommunityToolkit.Mvvm.Input;
-//using Microsoft.Win32;
using System;
using System.Collections.Generic;
using System.Configuration;
@@ -14,27 +13,38 @@
namespace ValheimServer.ViewModels
{
+ ///
+ /// Represents the main window view model.
+ ///
public partial class MainWindowViewModel : ObservableObject
{
+ private bool _uselessCheckBox = false;
+ private string _installFolder;
+ private string _serverTextBox;
+ private string _folderName;
+ private string _portTextBox;
+ private string _worldTextBox;
+ private string _passwordTextBox;
+ private string _hiddenTextBox;
+ private bool _serverVisibilityCheckBox = true;
+ ///
+ /// Initializes a new instance of the class.
+ ///
public MainWindowViewModel()
{
-
_installFolder = AppSettings.Default.InstallFolder;
_serverTextBox = AppSettings.Default.ServerName;
_passwordTextBox = AppSettings.Default.Password;
_portTextBox = AppSettings.Default.PortNumber;
_worldTextBox = AppSettings.Default.WorldName;
-
+ _folderName = string.Empty;
+ _hiddenTextBox = string.Empty;
}
- [RelayCommand]
- private void SteamButtonClick()
- {
- Process.Start("steamcmd.exe", "+quit");
- }
- private bool _uselessCheckBox = false;
-
+ ///
+ /// Gets or Sets a value indicating whether the Checkbox is checked.
+ ///
public bool UselessCheckBox
{
get
@@ -48,26 +58,9 @@ public bool UselessCheckBox
}
}
- [RelayCommand]
- private void UpdateValheimButtonClick()
- {
- FolderBrowserDialog folderBrowserDialog = new FolderBrowserDialog();
-
- var result = folderBrowserDialog.ShowDialog();
-
- if (result == DialogResult.OK)
- {
- InstallFolder = folderBrowserDialog.SelectedPath;
- AppSettings.Default.InstallFolder = InstallFolder;
- AppSettings.Default.Save();
-
- }
-
- Process.Start("steamcmd.exe", $"+login anonymous +force_install_dir {_installFolder} +app_update 896660 validate +quit");
- }
-
- private string _installFolder;
-
+ ///
+ /// Gets or sets the install folder.
+ ///
public string InstallFolder
{
get
@@ -81,9 +74,9 @@ public string InstallFolder
}
}
-
- private string _serverTextBox;
-
+ ///
+ /// Gets or sets the server name.
+ ///
public string ServerTextBox
{
get
@@ -97,29 +90,9 @@ public string ServerTextBox
}
}
- [RelayCommand]
- private void OpenFileDialogClick()
- {
- OpenFileDialog openFileDialog = new OpenFileDialog();
- openFileDialog.ShowDialog();
- }
-
- [RelayCommand]
- private void FolderBrowserDialogClick()
- {
- FolderBrowserDialog folderBrowserDialog = new FolderBrowserDialog();
-
- var result = folderBrowserDialog.ShowDialog();
-
- if (result == DialogResult.OK)
- {
- FolderName = folderBrowserDialog.SelectedPath;
- }
- }
-
-
- private string _folderName;
-
+ ///
+ /// Gets or sets the folder name.
+ ///
public string FolderName
{
get
@@ -133,8 +106,9 @@ public string FolderName
}
}
- private string _portTextBox;
-
+ ///
+ /// Gets or sets the port number.
+ ///
public string PortTextBox
{
get
@@ -148,8 +122,9 @@ public string PortTextBox
}
}
- private string _worldTextBox;
-
+ ///
+ /// Gets or sets the world name.
+ ///
public string WorldTextBox
{
get
@@ -161,11 +136,11 @@ public string WorldTextBox
{
SetProperty(ref _worldTextBox, value);
}
-
}
- private string _passwordTextBox;
-
+ ///
+ /// Gets or Sets the password.
+ ///
public string PaswordTextBox
{
get
@@ -177,11 +152,11 @@ public string PaswordTextBox
{
SetProperty(ref _passwordTextBox, value);
}
-
}
- private string _hiddenTextBox;
-
+ ///
+ /// Gets or Sets the hidden text box.
+ ///
public string HiddenTextBox
{
get
@@ -193,11 +168,11 @@ public string HiddenTextBox
{
SetProperty(ref _hiddenTextBox, value);
}
-
}
- private bool _serverVisibilityCheckBox = true;
-
+ ///
+ /// Gets or Sets a value indicating whether the checkbox is visible.
+ ///
public bool ServerVisibilityCheckBox
{
get
@@ -209,10 +184,9 @@ public bool ServerVisibilityCheckBox
{
SetProperty(ref _serverVisibilityCheckBox, value);
}
-
}
- private int _serverVisibiltyCheck
+ private int ServerVisibiltyCheck
{
get
{
@@ -227,30 +201,66 @@ private int _serverVisibiltyCheck
}
}
+ [RelayCommand]
+ private void SteamButtonClick()
+ {
+ Process.Start("steamcmd.exe", "+quit");
+ }
+
+ [RelayCommand]
+ private void UpdateValheimButtonClick()
+ {
+ FolderBrowserDialog folderBrowserDialog = new FolderBrowserDialog();
+
+ var result = folderBrowserDialog.ShowDialog();
+
+ if (result == DialogResult.OK)
+ {
+ InstallFolder = folderBrowserDialog.SelectedPath;
+ AppSettings.Default.InstallFolder = InstallFolder;
+ AppSettings.Default.Save();
+ }
+
+ Process.Start("steamcmd.exe", $"+login anonymous +force_install_dir {_installFolder} +app_update 896660 validate +quit");
+ }
+
+ [RelayCommand]
+ private void OpenFileDialogClick()
+ {
+ OpenFileDialog openFileDialog = new OpenFileDialog();
+ openFileDialog.ShowDialog();
+ }
+ [RelayCommand]
+ private void FolderBrowserDialogClick()
+ {
+ FolderBrowserDialog folderBrowserDialog = new FolderBrowserDialog();
+
+ var result = folderBrowserDialog.ShowDialog();
+
+ if (result == DialogResult.OK)
+ {
+ FolderName = folderBrowserDialog.SelectedPath;
+ }
+ }
[RelayCommand]
private void ServerStartButtonClick()
{
-
ProcessStartInfo startInfo = new ProcessStartInfo
{
FileName = "cmd.exe",
- Arguments = $@"/K set SteamAppId=892970 && {_installFolder}\\valheim_server.exe -nographics -batchmode -name ""{ _serverTextBox }"" -port {_portTextBox} -world ""{_worldTextBox}"" -password ""{_passwordTextBox}"" -public {_serverVisibiltyCheck}",
- UseShellExecute = false
+ Arguments = $@"/K set SteamAppId=892970 && {_installFolder}\\valheim_server.exe -nographics -batchmode -name ""{_serverTextBox}"" -port {_portTextBox} -world ""{_worldTextBox}"" -password ""{_passwordTextBox}"" -public {ServerVisibiltyCheck}",
+ UseShellExecute = false,
};
-
+
Process.Start(startInfo);
AppSettings.Default.ServerName = ServerTextBox;
AppSettings.Default.Password = PaswordTextBox;
- AppSettings.Default.PortNumber = PortTextBox;
+ AppSettings.Default.PortNumber = PortTextBox;
AppSettings.Default.WorldName = WorldTextBox;
AppSettings.Default.Save();
-
}
-
-
}
-
}
diff --git a/ValheimServer/ValheimServer/stylecop.json b/ValheimServer/ValheimServer/stylecop.json
new file mode 100644
index 0000000..1738ba8
--- /dev/null
+++ b/ValheimServer/ValheimServer/stylecop.json
@@ -0,0 +1,14 @@
+{
+ "$schema": "https://raw.githubusercontent.com/DotNetAnalyzers/StyleCopAnalyzers/master/StyleCop.Analyzers/StyleCop.Analyzers/Settings/stylecop.schema.json",
+ "settings": {
+ "documentationRules": {
+ },
+ "orderingRules": {
+ "systemUsingDirectivesFirst": false,
+ "usingDirectivesPlacement": "outsideNamespace"
+ },
+ "namingRules": {
+ "allowCommonHungarianPrefixes": false
+ }
+ }
+}
\ No newline at end of file