Skip to content
This repository has been archived by the owner on Oct 16, 2024. It is now read-only.

Commit

Permalink
Merge pull request #43 from Subversionary/FieldDay
Browse files Browse the repository at this point in the history
Fix RO setting fields
  • Loading branch information
misandrie authored May 22, 2024
2 parents f039634 + 3dfecb0 commit 8706e99
Show file tree
Hide file tree
Showing 3 changed files with 54 additions and 33 deletions.
6 changes: 6 additions & 0 deletions Marsey/Game/Patches/HWID.cs
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
using System.Text;
using System.Text.RegularExpressions;
using HarmonyLib;
using Marsey.Config;
using Marsey.Handbreak;
Expand Down Expand Up @@ -87,6 +88,11 @@ private static void PatchCalcMethod()
);
}

public static bool CheckHWID(string hwid)
{
return Regex.IsMatch(hwid, "^$|^[A-F0-9]{64}$");
}

private static void RecalcHwid(ref byte[] __result)
{
string hwidString = BitConverter.ToString(_hwId).Replace("-", "");
Expand Down
76 changes: 45 additions & 31 deletions SS14.Launcher/ViewModels/MainWindowTabs/OptionsTabViewModel.cs
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,10 @@
using System.Text.RegularExpressions;
using System.Threading.Tasks;
using System.Windows.Input;
using Avalonia.Controls;
using Avalonia.Data.Converters;
using Avalonia.Input;
using Avalonia.Media;
using DynamicData;
using Marsey;
using Marsey.Config;
Expand Down Expand Up @@ -61,6 +64,7 @@ public OptionsTabViewModel()
DumpConfigCommand = new RelayCommand(DumpConfig.Dump);

Persist.UpdateLauncherConfig();
SetTempHwid();
}

#if RELEASE
Expand Down Expand Up @@ -271,7 +275,11 @@ public bool FakeRPC
public string RPCUsername
{
get => Cfg.GetCVar(CVars.RPCUsername);
set => _RPCUsername = value;
set
{
Cfg.SetCVar(CVars.RPCUsername, value);
Cfg.CommitConfig();
}
}

public bool ForcingHWID
Expand Down Expand Up @@ -305,17 +313,36 @@ public bool RandHWID
}
}

private string _HWIdString = "";
public string HWIdString
private void SetTempHwid()
{
get
if (!LIHWIDBind)
{
if (!LIHWIDBind)
return Cfg.GetCVar(CVars.ForcedHWId);
_hwidString = Cfg.GetCVar(CVars.ForcedHWId);
return;
}

_hwidString = _loginManager.ActiveAccount != null ? _loginManager.ActiveAccount.LoginInfo.HWID : "";
}

private string _hwidString = "";
public string HWIdString
{
get => _hwidString;
set => _hwidString = value;
}

return _loginManager.ActiveAccount != null ? _loginManager.ActiveAccount.LoginInfo.HWID : "";

// This is cancer, quite literally
// I hate this
private Brush? _hwidTextBoxBorderBrush = new SolidColorBrush(Color.Parse("#FF888888"));
public Brush? HWIDTextBoxBorderBrush
{
get => _hwidTextBoxBorderBrush;
set
{
_hwidTextBoxBorderBrush = value;
OnPropertyChanged(nameof(HWIDTextBoxBorderBrush));
}
set => _HWIdString = value;
}

private string _GuestUname;
Expand Down Expand Up @@ -431,43 +458,30 @@ public string Username

private void OnSetHWIdClick()
{
string hwid = _HWIdString;
Cfg.SetCVar(CVars.ForcedHWId, _hwidString);

// Check if _HWIdString is a valid hex string (allowing empty string) and pad it if necessary
if (Regex.IsMatch(_HWIdString, "^$|^[A-F0-9]{64}$")) // '*' allows for zero or more characters
if (HWID.CheckHWID(_hwidString))
{
if (LIHWIDBind)
{
if (_loginManager.ActiveAccount != null)
{
Log.Debug($"Writing {hwid} to {_loginManager.ActiveAccount.Username}");
_loginManager.ActiveAccount.LoginInfo.HWID = hwid;
}
}
else
{
Log.Debug($"Writing {hwid} to MarseyConf");
Cfg.SetCVar(CVars.ForcedHWId, _HWIdString);
Cfg.CommitConfig();
}

OnPropertyChanged(nameof(HWIdString));
return;
HWIDTextBoxBorderBrush = new SolidColorBrush(Color.Parse("#FF888888"));
Cfg.CommitConfig();
}
else
{
HWIDTextBoxBorderBrush = new SolidColorBrush(Brushes.Red.Color);
}

Log.Warning("Passed HWId is not a valid hexadecimal string! Refusing to apply.");
OnPropertyChanged(nameof(HWIdString));
}

private void OnSetRPCUsernameClick()
{
Cfg.SetCVar(CVars.RPCUsername, _RPCUsername);
Cfg.SetCVar(CVars.RPCUsername, RPCUsername);
Cfg.CommitConfig();
}

private void OnGenHWIdClick()
{
string hwid = HWID.GenerateRandom();
_HWIdString = hwid;
HWIdString = hwid;

OnSetHWIdClick();
Expand Down
5 changes: 3 additions & 2 deletions SS14.Launcher/Views/MainWindowTabs/OptionsTabView.xaml
Original file line number Diff line number Diff line change
Expand Up @@ -91,7 +91,7 @@
<TextBlock Grid.Row="0" Grid.Column="0" Grid.ColumnSpan="2" VerticalAlignment="Center" TextWrapping="NoWrap"
Text="Set your username below. This username will be shown in the discord rich presence activity when hovering on the big icon."
Margin="8"/>
<TextBox Grid.Row="1" Grid.Column="0" Width="600" MaxWidth="1000" HorizontalAlignment="Left" x:Name="RPCUsernameTextBox" VerticalAlignment="Center" Margin="4" Text="{Binding RPCUsername}"/>
<TextBox Grid.Row="1" Grid.Column="0" Width="600" MaxWidth="1000" HorizontalAlignment="Left" x:Name="RPCUsernameTextBox" VerticalAlignment="Center" Margin="4" Text="{Binding RPCUsername, Mode=TwoWay}" IsEnabled="True" IsReadOnly="False"/>
<Button Grid.Row="2" Grid.Column="0" HorizontalAlignment="Left" Content="Set username" Command="{Binding SetRPCUsernameCommand}" VerticalAlignment="Center" Margin="4"/>
</Grid>

Expand All @@ -115,7 +115,8 @@
<TextBlock Grid.Row="0" Grid.Column="0" Grid.ColumnSpan="2" VerticalAlignment="Center" TextWrapping="NoWrap"
Text="Change your HWID. Can be set to be empty or any hexadecimal string."
Margin="8"/>
<TextBox Grid.Row="1" Grid.Column="0" Width="600" MaxWidth="1000" HorizontalAlignment="Left" x:Name="HWIdTextBox" VerticalAlignment="Center" Margin="4" Text="{Binding HWIdString}"/>
<TextBox Grid.Row="1" Grid.Column="0" Width="600" MaxWidth="1000" HorizontalAlignment="Left" BorderBrush="{Binding HWIDTextBoxBorderBrush}"
x:Name="HWIdTextBox" VerticalAlignment="Center" Margin="4" Text="{Binding HWIdString, Mode=TwoWay}"/>
<Button Grid.Row="2" Grid.Column="0" HorizontalAlignment="Left" Content="Set HWID" Command="{Binding SetHWIdCommand}" VerticalAlignment="Center" Margin="4"/>
<Button Grid.Row="2" Grid.Column="1" HorizontalAlignment="Left" Content="Generate random" Command="{Binding GenHWIdCommand}" VerticalAlignment="Center" Margin="4"/>
</Grid>
Expand Down

0 comments on commit 8706e99

Please sign in to comment.