Compare commits

...

4 Commits

  1. 1
      GTAOnlineCasinoHelper/App.xaml
  2. BIN
      GTAOnlineCasinoHelper/Assets/GTA5.ico
  3. BIN
      GTAOnlineCasinoHelper/Assets/GTA5.png
  4. 39
      GTAOnlineCasinoHelper/Extensions/ImageExtension.cs
  5. 17
      GTAOnlineCasinoHelper/GTAOnlineCasinoHelper.csproj
  6. 7
      GTAOnlineCasinoHelper/MainWindow.xaml
  7. 6
      GTAOnlineCasinoHelper/MainWindow.xaml.cs
  8. 4
      GTAOnlineCasinoHelper/Properties/AssemblyInfo.cs
  9. 10
      GTAOnlineCasinoHelper/Properties/Resources.Designer.cs
  10. 76
      GTAOnlineCasinoHelper/Properties/Resources.resx
  11. 87
      GTAOnlineCasinoHelper/Views/AutoLobby.xaml
  12. 253
      GTAOnlineCasinoHelper/Views/AutoLobby.xaml.cs
  13. 30
      GTAOnlineCasinoHelper/Views/LuckyWheel.xaml
  14. 2
      GTAOnlineCasinoHelper/Views/LuckyWheel.xaml.cs
  15. 2
      GTAOnlineCasinoHelper/Views/Settings/ThemeView.xaml
  16. 40
      GTAOnlineCasinoHelper/Views/TestTwo.xaml
  17. 28
      GTAOnlineCasinoHelper/Views/TestTwo.xaml.cs
  18. 12
      README.md
  19. 1
      testfile.txt

@ -2,6 +2,7 @@
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:local="clr-namespace:GTAOnlineCasinoHelper"
xmlns:system="clr-namespace:System;assembly=mscorlib"
StartupUri="MainWindow.xaml">
<Application.Resources>
<ResourceDictionary>

Binary file not shown.

After

Width:  |  Height:  |  Size: 17 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.7 KiB

@ -0,0 +1,39 @@
using System;
using System.Collections.Generic;
using System.Drawing;
using System.Linq;
using System.Runtime.InteropServices;
using System.Text;
using System.Threading.Tasks;
using System.Windows;
using System.Windows.Media.Imaging;
namespace GTAOnlineCasinoHelper.Extensions
{
public static class ImageExtension
{
[DllImport("gdi32.dll")]
[return: MarshalAs(UnmanagedType.Bool)]
internal static extern bool DeleteObject(IntPtr value);
public static BitmapSource GetBitmapSource(this Image image)
{
Bitmap bitmap = new Bitmap(image);
IntPtr bmpPt = bitmap.GetHbitmap();
BitmapSource bitmapSource =
System.Windows.Interop.Imaging.CreateBitmapSourceFromHBitmap(
bmpPt,
IntPtr.Zero,
Int32Rect.Empty,
BitmapSizeOptions.FromEmptyOptions());
//freeze bitmapSource and clear memory to avoid memory leaks
bitmapSource.Freeze();
DeleteObject(bmpPt);
return bitmapSource;
}
}
}

@ -37,6 +37,9 @@
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
</PropertyGroup>
<PropertyGroup>
<ApplicationIcon>Assets\GTA5.ico</ApplicationIcon>
</PropertyGroup>
<ItemGroup>
<Reference Include="ControlzEx, Version=4.0.0.0, Culture=neutral, PublicKeyToken=69f1c32f803d307e, processorArchitecture=MSIL">
<HintPath>..\packages\ControlzEx.4.0.1\lib\net45\ControlzEx.dll</HintPath>
@ -60,6 +63,7 @@
<Reference Include="System.ComponentModel.DataAnnotations" />
<Reference Include="System.Configuration" />
<Reference Include="System.Data" />
<Reference Include="System.Drawing" />
<Reference Include="System.Xml" />
<Reference Include="Microsoft.CSharp" />
<Reference Include="System.Core" />
@ -78,11 +82,12 @@
<Generator>MSBuild:Compile</Generator>
<SubType>Designer</SubType>
</ApplicationDefinition>
<Compile Include="Extensions\ImageExtension.cs" />
<Compile Include="Views\Settings\ThemeView.xaml.cs">
<DependentUpon>ThemeView.xaml</DependentUpon>
</Compile>
<Compile Include="Views\TestTwo.xaml.cs">
<DependentUpon>TestTwo.xaml</DependentUpon>
<Compile Include="Views\AutoLobby.xaml.cs">
<DependentUpon>AutoLobby.xaml</DependentUpon>
</Compile>
<Compile Include="Views\LuckyWheel.xaml.cs">
<DependentUpon>LuckyWheel.xaml</DependentUpon>
@ -105,7 +110,7 @@
<Page Include="Views\Settings\ThemeView.xaml">
<Generator>MSBuild:UpdateDesignTimeXaml</Generator>
</Page>
<Page Include="Views\TestTwo.xaml">
<Page Include="Views\AutoLobby.xaml">
<Generator>MSBuild:UpdateDesignTimeXaml</Generator>
<SubType>Designer</SubType>
</Page>
@ -144,6 +149,12 @@
<ItemGroup>
<None Include="App.config" />
</ItemGroup>
<ItemGroup>
<Resource Include="Assets\GTA5.ico" />
</ItemGroup>
<ItemGroup>
<Resource Include="Assets\GTA5.png" />
</ItemGroup>
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
<Import Project="..\packages\Fody.4.2.1\build\Fody.targets" Condition="Exists('..\packages\Fody.4.2.1\build\Fody.targets')" />
<Target Name="EnsureNuGetPackageBuildImports" BeforeTargets="PrepareForBuild">

@ -37,6 +37,13 @@
<Views:LuckyWheel />
</ScrollViewer>
</TabItem>
<TabItem Header="AutoLobby">
<ScrollViewer Margin="2"
HorizontalScrollBarVisibility="Auto"
VerticalScrollBarVisibility="Auto">
<Views:AutoLobby />
</ScrollViewer>
</TabItem>
<!--<TabItem Header="TestTwo">
<ScrollViewer Margin="2"
HorizontalScrollBarVisibility="Auto"

@ -1,4 +1,5 @@
using GTAOnlineCasinoHelper.Windows;
using GTAOnlineCasinoHelper.Extensions;
using GTAOnlineCasinoHelper.Windows;
using MahApps.Metro;
using MahApps.Metro.Controls;
using MahApps.Metro.Controls.Dialogs;
@ -33,6 +34,7 @@ namespace GTAOnlineCasinoHelper
{
Instance = this;
InitializeComponent();
this.Icon = Properties.Resources.GTA5.GetBitmapSource();
LoadTheme();
}
@ -51,7 +53,7 @@ namespace GTAOnlineCasinoHelper
ThemeManager.ChangeTheme(Application.Current, baseColor, colorScheme);
}
private async void ButtonSettings_Click(object sender, RoutedEventArgs e)
private void ButtonSettings_Click(object sender, RoutedEventArgs e)
{
new SettingsWindow().Show();
//await this.ShowMessageAsync("Not implemented yet", "Settings has not been implemented yet");

@ -51,5 +51,5 @@ using System.Windows;
// You can specify all the values or you can default the Build and Revision Numbers
// by using the '*' as shown below:
// [assembly: AssemblyVersion("1.0.*")]
[assembly: AssemblyVersion("1.0.0.0")]
[assembly: AssemblyFileVersion("1.0.0.0")]
[assembly: AssemblyVersion("1.1.1.0")]
[assembly: AssemblyFileVersion("1.1.1.0")]

@ -59,5 +59,15 @@ namespace GTAOnlineCasinoHelper.Properties {
resourceCulture = value;
}
}
/// <summary>
/// Looks up a localized resource of type System.Drawing.Bitmap.
/// </summary>
internal static System.Drawing.Bitmap GTA5 {
get {
object obj = ResourceManager.GetObject("GTA5", resourceCulture);
return ((System.Drawing.Bitmap)(obj));
}
}
}
}

@ -117,4 +117,80 @@
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<assembly alias="System.Drawing" name="System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
<data name="GTA5" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
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
eup/AFpYttV3+saAAAAAAElFTkSuQmCC
</value>
</data>
</root>

@ -0,0 +1,87 @@
<?xml version="1.0" encoding="UTF-8"?>
<UserControl x:Class="GTAOnlineCasinoHelper.Views.AutoLobby"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:iconPacks="http://metro.mahapps.com/winfx/xaml/iconpacks"
xmlns:Controls="http://metro.mahapps.com/winfx/xaml/controls"
xmlns:GTAOnlineCasinoHelper="clr-namespace:GTAOnlineCasinoHelper">
<UserControl.Resources>
<Thickness x:Key="ControlMargin">5</Thickness>
</UserControl.Resources>
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition />
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition Height="Auto" />
<RowDefinition Height="*" />
<RowDefinition Height="Auto" />
</Grid.RowDefinitions>
<StackPanel Grid.Column="0"
Grid.Row="0"
HorizontalAlignment="Center">
<Button x:Name="Button_AutoLobby"
Margin="5"
Content="Auto Solo Lobby"
Click="Button_AutoLobby_Click"/>
<Button x:Name="Button_Suspend"
Margin="5"
Content="Suspend"
Click="Button_Suspend_Click"/>
<Button x:Name="Button_Resume"
Margin="5"
Content="Resume"
Click="Button_Resume_Click"/>
</StackPanel>
<StackPanel Grid.Column="0"
Grid.Row="1"
HorizontalAlignment="Center">
<TextBlock x:Name="TextBlock_Status"
TextAlignment="Center"
Margin="5"
FontSize="32" />
</StackPanel>
<StackPanel Grid.Column="0"
Grid.Row="2"
HorizontalAlignment="Center"
VerticalAlignment="Bottom">
<CheckBox x:Name="CheckBox_OverrideProcessName"
Margin="5"
Content="Override Process Name"
IsChecked="False"
Checked="CheckBox_OverrideProcessName_Checked"
Unchecked="CheckBox_OverrideProcessName_Unchecked" />
<TextBox x:Name="TextBox_ProcessName"
Margin="5"
Visibility="Collapsed"/>
<CheckBox x:Name="CheckBox_OverrideTimeout"
Margin="5"
Content="Override Timeout"
IsChecked="False"
Checked="CheckBox_OverrideTimeout_Checked"
Unchecked="CheckBox_OverrideTimeout_Unchecked" />
<TextBox x:Name="TextBox_TimeoutSeconds"
Margin="5"
Visibility="Collapsed"/>
</StackPanel>
</Grid>
</UserControl>
<!--<ContentView xmlns="http://xamarin.com/schemas/2014/forms"
xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
x:Class="GTAOnlineCasinoHelper.Views.LuckyWheel">
<ContentView.Content>
<StackLayout>
<Label Text="Hello Xamarin.Forms!" />
</StackLayout>
</ContentView.Content>
</ContentView>-->

@ -0,0 +1,253 @@
using MahApps.Metro.Controls;
using MahApps.Metro.Controls.Dialogs;
using System;
using System.Collections.Generic;
using System.Diagnostics;
using System.Linq;
using System.Runtime.InteropServices;
using System.Text;
using System.Threading;
using System.Threading.Tasks;
using System.Windows;
using System.Windows.Controls;
namespace GTAOnlineCasinoHelper.Views
{
public partial class AutoLobby : UserControl
{
[Flags]
public enum ThreadAccess : int
{
TERMINATE = (0x0001),
SUSPEND_RESUME = (0x0002),
GET_CONTEXT = (0x0008),
SET_CONTEXT = (0x0010),
SET_INFORMATION = (0x0020),
QUERY_INFORMATION = (0x0040),
SET_THREAD_TOKEN = (0x0080),
IMPERSONATE = (0x0100),
DIRECT_IMPERSONATION = (0x0200)
}
[DllImport("kernel32.dll")]
static extern IntPtr OpenThread(ThreadAccess dwDesiredAccess, bool bInheritHandle, uint dwThreadId);
[DllImport("kernel32.dll")]
static extern uint SuspendThread(IntPtr hThread);
[DllImport("kernel32.dll")]
static extern int ResumeThread(IntPtr hThread);
[DllImport("kernel32", CharSet = CharSet.Auto, SetLastError = true)]
static extern bool CloseHandle(IntPtr handle);
private const int SECONDS = 8;
private const int TIMER_INTERVAL = 50;
private const string PROCESS_NAME = "GTA5";
private int Seconds
{
get
{
if (CheckBox_OverrideTimeout.IsChecked.HasValue && CheckBox_OverrideTimeout.IsChecked.Value && int.TryParse(TextBox_TimeoutSeconds.Text, out int seconds))
{
return seconds;
}
else
{
return SECONDS;
}
}
}
private string ProcessName
{
get
{
return (CheckBox_OverrideProcessName.IsChecked.HasValue && CheckBox_OverrideProcessName.IsChecked.Value) ? TextBox_ProcessName.Text : PROCESS_NAME;
}
}
private bool IsSuspended
{
get
{
return suspendedProcesses != null && suspendedProcesses.Length > 0;
}
}
private Process[] suspendedProcesses = new Process[0];
private Timer timer;
private DateTimeOffset timestamp = DateTimeOffset.MinValue;
public AutoLobby()
{
this.InitializeComponent();
this.TextBox_ProcessName.Text = PROCESS_NAME;
this.TextBox_TimeoutSeconds.Text = SECONDS.ToString();
this.timer = new Timer(Timer_Tick, this, Timeout.Infinite, TIMER_INTERVAL);
}
private double GetMilliseconds()
{
return DateTime.Now.ToUniversalTime().Subtract(
new DateTime(1970, 1, 1, 0, 0, 0, DateTimeKind.Utc)
).TotalMilliseconds;
}
private void Timer_Tick(object state)
{
Dispatcher.Invoke(() =>
{
if (!IsSuspended)
{
TextBlock_Status.Text = "";
this.timer.Change(Timeout.Infinite, 50);
}
TimeSpan timeSpan = timestamp - DateTimeOffset.Now;
if (timeSpan.TotalMilliseconds < 0)
{
ResumeGTA();
TextBlock_Status.Text = "";
return;
}
TextBlock_Status.Text = $"{timeSpan.TotalSeconds.ToString("F3")}s";
});
}
private void CheckBox_OverrideProcessName_Checked(object sender, RoutedEventArgs e)
{
TextBox_ProcessName.Visibility = Visibility.Visible;
}
private void CheckBox_OverrideProcessName_Unchecked(object sender, RoutedEventArgs e)
{
TextBox_ProcessName.Visibility = Visibility.Collapsed;
}
private void CheckBox_OverrideTimeout_Checked(object sender, RoutedEventArgs e)
{
TextBox_TimeoutSeconds.Visibility = Visibility.Visible;
}
private void CheckBox_OverrideTimeout_Unchecked(object sender, RoutedEventArgs e)
{
TextBox_TimeoutSeconds.Visibility = Visibility.Collapsed;
}
private async void Button_AutoLobby_Click(object sender, RoutedEventArgs e)
{
if (IsSuspended)
{
await MainWindow.Instance.ShowMessageAsync("GTA V is already suspended", $"GTA V ({ProcessName}.exe) is already suspended");
return;
}
if (!SuspendGTA())
{
await MainWindow.Instance.ShowMessageAsync("GTA V is not running", $"GTA V ({ProcessName}.exe) is not running");
return;
}
timestamp = DateTimeOffset.Now + new TimeSpan(0, 0, Seconds);
TextBlock_Status.Text = $"{Seconds}.000s";
timer.Change(TIMER_INTERVAL, TIMER_INTERVAL);
}
private async void Button_Suspend_Click(object sender, RoutedEventArgs e)
{
if (IsSuspended)
{
await MainWindow.Instance.ShowMessageAsync("GTA V is already suspended", $"GTA V ({ProcessName}.exe) is already suspended");
return;
}
if (!SuspendGTA())
{
await MainWindow.Instance.ShowMessageAsync("GTA V is not running", $"GTA V ({ProcessName}.exe) is not running");
return;
}
TextBlock_Status.Text = "Suspended";
}
private async void Button_Resume_Click(object sender, RoutedEventArgs e)
{
if (!IsSuspended)
{
await MainWindow.Instance.ShowMessageAsync("GTA V is not suspended", $"GTA V ({ProcessName}.exe) is not suspended");
return;
}
ResumeGTA();
TextBlock_Status.Text = "";
}
private static void SuspendProcess(int pid)
{
var process = Process.GetProcessById(pid);
if (process.ProcessName == string.Empty)
return;
foreach (ProcessThread pT in process.Threads)
{
IntPtr pOpenThread = OpenThread(ThreadAccess.SUSPEND_RESUME, false, (uint)pT.Id);
if (pOpenThread == IntPtr.Zero)
{
continue;
}
SuspendThread(pOpenThread);
CloseHandle(pOpenThread);
}
}
public static void ResumeProcess(int pid)
{
var process = Process.GetProcessById(pid);
if (process.ProcessName == string.Empty)
return;
foreach (ProcessThread pT in process.Threads)
{
IntPtr pOpenThread = OpenThread(ThreadAccess.SUSPEND_RESUME, false, (uint)pT.Id);
if (pOpenThread == IntPtr.Zero)
{
continue;
}
var suspendCount = 0;
do
{
suspendCount = ResumeThread(pOpenThread);
} while (suspendCount > 0);
CloseHandle(pOpenThread);
}
}
private bool SuspendGTA()
{
suspendedProcesses = Process.GetProcessesByName(ProcessName);
if (suspendedProcesses.Length < 1)
{
return false;
}
foreach (Process process in suspendedProcesses)
{
SuspendProcess(process.Id);
}
//labelState.Text = "Suspended";
return true;
}
private void ResumeGTA()
{
timer.Change(Timeout.Infinite, TIMER_INTERVAL);
foreach (var process in suspendedProcesses)
{
ResumeProcess(process.Id);
}
suspendedProcesses = new Process[0];
TextBlock_Status.Text = "";
}
}
}

@ -9,7 +9,7 @@
xmlns:GTAOnlineCasinoHelper="clr-namespace:GTAOnlineCasinoHelper">
<UserControl.Resources>
<Thickness x:Key="ControlMargin">0 5 0 0</Thickness>
<Thickness x:Key="ControlMargin">5</Thickness>
</UserControl.Resources>
<Grid>
@ -20,46 +20,40 @@
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition Height="Auto" />
<RowDefinition />
</Grid.RowDefinitions>
<StackPanel Grid.Column="0"
Grid.Row="0"
HorizontalAlignment="Center">
<CheckBox x:Name="CheckBox_UseTextBoxTimeStamp"
Content="Use Custom TimeStamp"
Margin="5"
Content="Use Custom Timestamp"
IsChecked="False"
Checked="CheckBox_UseTextBoxTimeStamp_Checked"
Unchecked="CheckBox_UseTextBoxTimeStamp_Unchecked" />
<TextBox x:Name="TextBox_TimeStamp"
Margin="5"
Visibility="Collapsed"/>
<Button Content="Add TimeStamp"
<Button Margin="5"
Content="Add Timestamp"
Click="Button_AddTimeStamp"/>
</StackPanel>
<StackPanel Grid.Column="0"
Grid.Row="1"
HorizontalAlignment="Center">
<TextBlock x:Name="TextBlock_TimeStampTextBlock"
Margin="5"
TextAlignment="Center" />
</StackPanel>
<StackPanel Grid.Column="1"
Grid.Row="0"
HorizontalAlignment="Center">
<TextBlock Text="Lucky Wheel Countdown" />
</StackPanel>
<StackPanel Grid.Column="1"
Grid.Row="1"
HorizontalAlignment="Center"
VerticalAlignment="Center">
<TextBlock Text="Lucky Wheel Countdown"
Margin="5" />
<TextBlock x:Name="TextBlock_TimerTextBlock"
Margin="5"
TextAlignment="Center"
Text="Text"
FontSize="32"/>
</StackPanel>
</Grid>
</UserControl>

@ -78,7 +78,7 @@ namespace GTAOnlineCasinoHelper.Views
else
{
now = DateTimeOffset.Now;
DateTimeOffset then = AddHours(now, 24);
DateTimeOffset then = AddHours(TimeStamp, 24);
if (then > now)
{
await MainWindow.Instance.ShowMessageAsync("Lucky Wheel not ready yet", "You can't spin the wheel yet, to override this add a custom timestamp");

@ -10,7 +10,7 @@
xmlns:system="clr-namespace:System;assembly=mscorlib">
<UserControl.Resources>
<Thickness x:Key="ControlMargin">0 5 0 0</Thickness>
<Thickness x:Key="ControlMargin">5</Thickness>
</UserControl.Resources>
<Grid>

@ -1,40 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<UserControl x:Class="GTAOnlineCasinoHelper.Views.TestTwo"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:iconPacks="http://metro.mahapps.com/winfx/xaml/iconpacks"
xmlns:Controls="http://metro.mahapps.com/winfx/xaml/controls"
xmlns:GTAOnlineCasinoHelper="clr-namespace:GTAOnlineCasinoHelper">
<UserControl.Resources>
<Thickness x:Key="ControlMargin">0 5 0 0</Thickness>
</UserControl.Resources>
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition />
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition Height="Auto" />
</Grid.RowDefinitions>
<StackPanel Grid.Column="0"
Grid.Row="0"
HorizontalAlignment="Center">
<Button Content="Test button"
Click="Button_Click"/>
</StackPanel>
</Grid>
</UserControl>
<!--<ContentView xmlns="http://xamarin.com/schemas/2014/forms"
xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
x:Class="GTAOnlineCasinoHelper.Views.LuckyWheel">
<ContentView.Content>
<StackLayout>
<Label Text="Hello Xamarin.Forms!" />
</StackLayout>
</ContentView.Content>
</ContentView>-->

@ -1,28 +0,0 @@
using MahApps.Metro.Controls;
using MahApps.Metro.Controls.Dialogs;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows;
using System.Windows.Controls;
namespace GTAOnlineCasinoHelper.Views
{
public partial class TestTwo : UserControl
{
public TestTwo()
{
this.InitializeComponent();
}
private async void Button_Click(object sender, RoutedEventArgs e)
{
await MainWindow.Instance.ShowMessageAsync("Test", "This is a test");
}
}
}

@ -1 +1,13 @@
# GTAOnlineCasinoHelper
## Download
[Download from Releases](https://oskar3123.eu/oskar3123/GTAOnlineCasinoHelper/releases)
## Screenshots
![Main Window - LuckyWheel](http://git.oskar3123.eu:8880/screens/1a369870-7296-444d-8bd2-6228cf7bd1ec.png)
![Main Window - AutoLobby](http://git.oskar3123.eu:8880/screens/28009fbd-143d-4cd3-94bf-168e9f38e72c.png)
![Settings Window](http://git.oskar3123.eu:8880/screens/a2bec92b-666f-486d-9b74-77a463860858.png)

@ -0,0 +1 @@
test
Loading…
Cancel
Save