diff --git a/launcher-client-avalonia/.run/launcher-client-avalonia-win64.run.xml b/Launcher.Client.Avalonia/.run/launcher-client-avalonia-win64.run.xml similarity index 100% rename from launcher-client-avalonia/.run/launcher-client-avalonia-win64.run.xml rename to Launcher.Client.Avalonia/.run/launcher-client-avalonia-win64.run.xml diff --git a/launcher-client-avalonia/GUI/App.axaml b/Launcher.Client.Avalonia/GUI/App.axaml similarity index 100% rename from launcher-client-avalonia/GUI/App.axaml rename to Launcher.Client.Avalonia/GUI/App.axaml diff --git a/launcher-client-avalonia/GUI/App.axaml.cs b/Launcher.Client.Avalonia/GUI/App.axaml.cs similarity index 100% rename from launcher-client-avalonia/GUI/App.axaml.cs rename to Launcher.Client.Avalonia/GUI/App.axaml.cs diff --git a/launcher-client-avalonia/GUI/LauncherWindow.axaml b/Launcher.Client.Avalonia/GUI/LauncherWindow.axaml similarity index 100% rename from launcher-client-avalonia/GUI/LauncherWindow.axaml rename to Launcher.Client.Avalonia/GUI/LauncherWindow.axaml diff --git a/launcher-client-avalonia/GUI/LauncherWindow.axaml.cs b/Launcher.Client.Avalonia/GUI/LauncherWindow.axaml.cs similarity index 65% rename from launcher-client-avalonia/GUI/LauncherWindow.axaml.cs rename to Launcher.Client.Avalonia/GUI/LauncherWindow.axaml.cs index 80c769a..aa4bfbd 100644 --- a/launcher-client-avalonia/GUI/LauncherWindow.axaml.cs +++ b/Launcher.Client.Avalonia/GUI/LauncherWindow.axaml.cs @@ -7,31 +7,26 @@ public partial class LauncherWindow : Window { public LauncherWindow() { - try - { - InitializeComponent(); - LogBox.Text = Logger.Buffer; - Logger.MessageSent += LogHandler; - LogfileLabel.Content = Logger.LogfileName.Remove(0,Logger.LogfileName.LastIndexOf(Путь.Разд)+1); - LogfileLabel.PointerPressed += (_,_)=> - Process.Start("explorer.exe", LauncherLogger.LogfileDir); - LogfileLabel.PointerEnter += (_,_)=>LogfileLabel.Foreground=App.MySelectionColor; - LogfileLabel.PointerLeave += (_,_)=>LogfileLabel.Foreground=App.MyWhite; - LibraryButton.TabGrid = LibraryGrid; - DownloadsButton.TabGrid = DownloadsGrid; - LogButton.TabGrid = LogGrid; - SettingsButton.TabGrid = SettingsGrid; - LibraryButton.Click += SelectTab; - DownloadsButton.Click += SelectTab; - LogButton.Click += SelectTab; - SettingsButton.Click += SelectTab; - ProgramGrid.IsVisible = false; - SelectTab(LibraryButton, null); - FillProgramsPanel(); - Logger.Log("launcher started"); - } - catch(Exception ex) - { LogError("LAUNCHER WINDOW INIT",ex); } + InitializeComponent(); + LogBox.Text = Logger.Buffer; + Logger.MessageSent += LogHandler; + LogfileLabel.Content = Logger.LogfileName.Remove(0,Logger.LogfileName.LastIndexOf(Путь.Разд)+1); + LogfileLabel.PointerPressed += (_,_)=> + Process.Start("explorer.exe", LauncherLogger.LogfileDir); + LogfileLabel.PointerEnter += (_,_)=>LogfileLabel.Foreground=App.MySelectionColor; + LogfileLabel.PointerLeave += (_,_)=>LogfileLabel.Foreground=App.MyWhite; + LibraryButton.TabGrid = LibraryGrid; + DownloadsButton.TabGrid = DownloadsGrid; + LogButton.TabGrid = LogGrid; + SettingsButton.TabGrid = SettingsGrid; + LibraryButton.Click += SelectTab; + DownloadsButton.Click += SelectTab; + LogButton.Click += SelectTab; + SettingsButton.Click += SelectTab; + ProgramGrid.IsVisible = false; + SelectTab(LibraryButton, null); + FillProgramsPanel(); + Logger.Log("launcher started"); } void LogHandler(string m) => Dispatcher.UIThread.InvokeAsync(()=>LogBox.Text += m); diff --git a/launcher-client-avalonia/GUI/MessageBox.axaml b/Launcher.Client.Avalonia/GUI/MessageBox.axaml similarity index 100% rename from launcher-client-avalonia/GUI/MessageBox.axaml rename to Launcher.Client.Avalonia/GUI/MessageBox.axaml diff --git a/launcher-client-avalonia/GUI/MessageBox.axaml.cs b/Launcher.Client.Avalonia/GUI/MessageBox.axaml.cs similarity index 100% rename from launcher-client-avalonia/GUI/MessageBox.axaml.cs rename to Launcher.Client.Avalonia/GUI/MessageBox.axaml.cs diff --git a/launcher-client-avalonia/GUI/ProgramLabel.axaml b/Launcher.Client.Avalonia/GUI/ProgramLabel.axaml similarity index 100% rename from launcher-client-avalonia/GUI/ProgramLabel.axaml rename to Launcher.Client.Avalonia/GUI/ProgramLabel.axaml diff --git a/launcher-client-avalonia/GUI/ProgramLabel.axaml.cs b/Launcher.Client.Avalonia/GUI/ProgramLabel.axaml.cs similarity index 100% rename from launcher-client-avalonia/GUI/ProgramLabel.axaml.cs rename to Launcher.Client.Avalonia/GUI/ProgramLabel.axaml.cs diff --git a/launcher-client-avalonia/GUI/ProgramSettingsPanelItem.axaml b/Launcher.Client.Avalonia/GUI/ProgramSettingsPanelItem.axaml similarity index 100% rename from launcher-client-avalonia/GUI/ProgramSettingsPanelItem.axaml rename to Launcher.Client.Avalonia/GUI/ProgramSettingsPanelItem.axaml diff --git a/launcher-client-avalonia/GUI/ProgramSettingsPanelItem.axaml.cs b/Launcher.Client.Avalonia/GUI/ProgramSettingsPanelItem.axaml.cs similarity index 100% rename from launcher-client-avalonia/GUI/ProgramSettingsPanelItem.axaml.cs rename to Launcher.Client.Avalonia/GUI/ProgramSettingsPanelItem.axaml.cs diff --git a/launcher-client-avalonia/GUI/TabButton.cs b/Launcher.Client.Avalonia/GUI/TabButton.cs similarity index 100% rename from launcher-client-avalonia/GUI/TabButton.cs rename to Launcher.Client.Avalonia/GUI/TabButton.cs diff --git a/launcher-client-avalonia/launcher-client-avalonia.csproj b/Launcher.Client.Avalonia/Launcher.Client.Avalonia.csproj similarity index 94% rename from launcher-client-avalonia/launcher-client-avalonia.csproj rename to Launcher.Client.Avalonia/Launcher.Client.Avalonia.csproj index aefeec6..1ad4f1c 100644 --- a/launcher-client-avalonia/launcher-client-avalonia.csproj +++ b/Launcher.Client.Avalonia/Launcher.Client.Avalonia.csproj @@ -21,9 +21,16 @@ + + + + + + + diff --git a/launcher-client-avalonia/LauncherMain.cs b/Launcher.Client.Avalonia/LauncherMain.cs similarity index 57% rename from launcher-client-avalonia/LauncherMain.cs rename to Launcher.Client.Avalonia/LauncherMain.cs index ab0cef5..3f2deae 100644 --- a/launcher-client-avalonia/LauncherMain.cs +++ b/Launcher.Client.Avalonia/LauncherMain.cs @@ -8,6 +8,8 @@ global using DTLib; global using DTLib.Dtsod; global using DTLib.Filesystem; global using DTLib.Extensions; +global using Launcher.Client; +global using static Launcher.Client.LauncherClient; global using static Launcher.Client.Avalonia.LauncherMain; using Launcher.Client.Avalonia.GUI; @@ -15,31 +17,24 @@ namespace Launcher.Client.Avalonia; public static class LauncherMain { - public static LauncherConfig Config; - public static readonly LauncherLogger Logger = new(); public static LauncherWindow CurrentLauncherWindow; + public static AppBuilder BuildAvaloniaApp() => + AppBuilder.Configure() + .UsePlatformDetect() + .LogToTrace(); + public static void Main(string[] args) { try { - Config = new LauncherConfig(); - Directory.Create("descriptors"); - Directory.Create("icons"); - Directory.Create("backgrounds"); - Directory.Create("installed"); - Directory.Create("settings"); - File.WriteAllText($"descriptors{Путь.Разд}default.descriptor.template", - EmbeddedResources.ReadText("Launcher.Client.Avalonia.Resources.default.descriptor.template")); + LauncherClient.Init(); var traceHandler = new ConsoleTraceListener(); Trace.AutoFlush = true; Trace.Listeners.Add(traceHandler); - - AppBuilder.Configure() - .UsePlatformDetect() - .LogToTrace() - .StartWithClassicDesktopLifetime(args); + BuildAvaloniaApp().StartWithClassicDesktopLifetime(args); + throw new Exception("aaa"); } catch (Exception ex) { diff --git a/launcher-client-avalonia/Program.cs b/Launcher.Client.Avalonia/Program.cs similarity index 100% rename from launcher-client-avalonia/Program.cs rename to Launcher.Client.Avalonia/Program.cs diff --git a/launcher-client-avalonia/Resources/logo-D.ico b/Launcher.Client.Avalonia/Resources/logo-D.ico similarity index 100% rename from launcher-client-avalonia/Resources/logo-D.ico rename to Launcher.Client.Avalonia/Resources/logo-D.ico diff --git a/launcher-client-wpf/GUI/App.xaml b/Launcher.Client.WPF/GUI/App.xaml similarity index 100% rename from launcher-client-wpf/GUI/App.xaml rename to Launcher.Client.WPF/GUI/App.xaml diff --git a/launcher-client-wpf/GUI/App.xaml.cs b/Launcher.Client.WPF/GUI/App.xaml.cs similarity index 87% rename from launcher-client-wpf/GUI/App.xaml.cs rename to Launcher.Client.WPF/GUI/App.xaml.cs index 65aea7f..c013c6f 100644 --- a/launcher-client-wpf/GUI/App.xaml.cs +++ b/Launcher.Client.WPF/GUI/App.xaml.cs @@ -21,7 +21,10 @@ public partial class App : Application _Main(e.Args); } catch(Exception ex) - { LogError("STARTUP",ex); } + { + LogError("STARTUP",ex); + Shutdown(); + } } } diff --git a/launcher-client-wpf/GUI/LauncherWindow.xaml b/Launcher.Client.WPF/GUI/LauncherWindow.xaml similarity index 100% rename from launcher-client-wpf/GUI/LauncherWindow.xaml rename to Launcher.Client.WPF/GUI/LauncherWindow.xaml diff --git a/launcher-client-wpf/GUI/LauncherWindow.xaml.cs b/Launcher.Client.WPF/GUI/LauncherWindow.xaml.cs similarity index 65% rename from launcher-client-wpf/GUI/LauncherWindow.xaml.cs rename to Launcher.Client.WPF/GUI/LauncherWindow.xaml.cs index 2c1a048..870c24e 100644 --- a/launcher-client-wpf/GUI/LauncherWindow.xaml.cs +++ b/Launcher.Client.WPF/GUI/LauncherWindow.xaml.cs @@ -6,31 +6,26 @@ public partial class LauncherWindow : Window { public LauncherWindow() { - try - { - InitializeComponent(); - LogBox.Text = Logger.Buffer; - Logger.MessageSent += LogHandler; - LogfileLabel.Content = Logger.LogfileName.Remove(0,Logger.LogfileName.LastIndexOf(Путь.Разд)+1); - LogfileLabel.MouseLeftButtonDown += (_,_)=> - Process.Start("explorer.exe", LauncherLogger.LogfileDir); - LogfileLabel.MouseEnter += (_,_)=>LogfileLabel.Foreground=App.MySelectionColor; - LogfileLabel.MouseLeave += (_,_)=>LogfileLabel.Foreground=App.MyWhite; - LibraryButton.TabGrid = LibraryGrid; - DownloadsButton.TabGrid = DownloadsGrid; - LogButton.TabGrid = LogGrid; - SettingsButton.TabGrid = SettingsGrid; - LibraryButton.Click += SelectTab; - DownloadsButton.Click += SelectTab; - LogButton.Click += SelectTab; - SettingsButton.Click += SelectTab; - ProgramGrid.Visibility = Visibility.Hidden; - SelectTab(LibraryButton, null); - FillProgramsPanel(); - Logger.Log("launcher started"); - } - catch(Exception ex) - { LogError("LAUNCHER WINDOW INIT",ex); } + InitializeComponent(); + LogBox.Text = Logger.Buffer; + Logger.MessageSent += LogHandler; + LogfileLabel.Content = Logger.LogfileName.Remove(0,Logger.LogfileName.LastIndexOf(Путь.Разд)+1); + LogfileLabel.MouseLeftButtonDown += (_,_)=> + Process.Start("explorer.exe", LauncherLogger.LogfileDir); + LogfileLabel.MouseEnter += (_,_)=>LogfileLabel.Foreground=App.MySelectionColor; + LogfileLabel.MouseLeave += (_,_)=>LogfileLabel.Foreground=App.MyWhite; + LibraryButton.TabGrid = LibraryGrid; + DownloadsButton.TabGrid = DownloadsGrid; + LogButton.TabGrid = LogGrid; + SettingsButton.TabGrid = SettingsGrid; + LibraryButton.Click += SelectTab; + DownloadsButton.Click += SelectTab; + LogButton.Click += SelectTab; + SettingsButton.Click += SelectTab; + ProgramGrid.Visibility = Visibility.Hidden; + SelectTab(LibraryButton, null); + FillProgramsPanel(); + Logger.Log("launcher started"); } void LogHandler(string m) => Dispatcher.Invoke(()=>LogBox.Text += m); diff --git a/launcher-client-wpf/GUI/ProgramLabel.xaml b/Launcher.Client.WPF/GUI/ProgramLabel.xaml similarity index 100% rename from launcher-client-wpf/GUI/ProgramLabel.xaml rename to Launcher.Client.WPF/GUI/ProgramLabel.xaml diff --git a/launcher-client-wpf/GUI/ProgramLabel.xaml.cs b/Launcher.Client.WPF/GUI/ProgramLabel.xaml.cs similarity index 100% rename from launcher-client-wpf/GUI/ProgramLabel.xaml.cs rename to Launcher.Client.WPF/GUI/ProgramLabel.xaml.cs diff --git a/launcher-client-wpf/GUI/ProgramSettingsPanelItem.xaml b/Launcher.Client.WPF/GUI/ProgramSettingsPanelItem.xaml similarity index 100% rename from launcher-client-wpf/GUI/ProgramSettingsPanelItem.xaml rename to Launcher.Client.WPF/GUI/ProgramSettingsPanelItem.xaml diff --git a/launcher-client-wpf/GUI/ProgramSettingsPanelItem.xaml.cs b/Launcher.Client.WPF/GUI/ProgramSettingsPanelItem.xaml.cs similarity index 100% rename from launcher-client-wpf/GUI/ProgramSettingsPanelItem.xaml.cs rename to Launcher.Client.WPF/GUI/ProgramSettingsPanelItem.xaml.cs diff --git a/launcher-client-wpf/GUI/TabButton.cs b/Launcher.Client.WPF/GUI/TabButton.cs similarity index 100% rename from launcher-client-wpf/GUI/TabButton.cs rename to Launcher.Client.WPF/GUI/TabButton.cs diff --git a/launcher-client-wpf/launcher-client-wpf.csproj b/Launcher.Client.WPF/Launcher.Client.WPF.csproj similarity index 90% rename from launcher-client-wpf/launcher-client-wpf.csproj rename to Launcher.Client.WPF/Launcher.Client.WPF.csproj index ec1e4ca..6e169a7 100644 --- a/launcher-client-wpf/launcher-client-wpf.csproj +++ b/Launcher.Client.WPF/Launcher.Client.WPF.csproj @@ -25,6 +25,7 @@ + diff --git a/launcher-client-wpf/LauncherMain.cs b/Launcher.Client.WPF/LauncherMain.cs similarity index 56% rename from launcher-client-wpf/LauncherMain.cs rename to Launcher.Client.WPF/LauncherMain.cs index e46d303..5bfd066 100644 --- a/launcher-client-wpf/LauncherMain.cs +++ b/Launcher.Client.WPF/LauncherMain.cs @@ -9,27 +9,20 @@ global using System.Text; global using System.Collections.Generic; global using System.Linq; global using System.Windows; -global using static Launcher.Client.WPF.LauncherMain; +global using Launcher.Client; +global using static Launcher.Client.LauncherClient; +global using static Launcher.Client.WPF.LauncherMain; using Launcher.Client.WPF.GUI; namespace Launcher.Client.WPF; public static class LauncherMain { - public static LauncherConfig Config; - public static readonly LauncherLogger Logger = new(); public static LauncherWindow CurrentLauncherWindow; public static void _Main(string[] args) { - Config = new LauncherConfig(); - Directory.Create("descriptors"); - Directory.Create("icons"); - Directory.Create("backgrounds"); - Directory.Create("installed"); - Directory.Create("settings"); - File.WriteAllText($"descriptors{Путь.Разд}default.descriptor.template", - EmbeddedResources.ReadText("Launcher.Client.WPF.Resources.default.descriptor.template")); + LauncherClient.Init(); CurrentLauncherWindow = new LauncherWindow(); CurrentLauncherWindow.Show(); } diff --git a/launcher-client-wpf/Program.cs b/Launcher.Client.WPF/Program.cs similarity index 100% rename from launcher-client-wpf/Program.cs rename to Launcher.Client.WPF/Program.cs diff --git a/launcher-client-wpf/Resources/logo-D.ico b/Launcher.Client.WPF/Resources/logo-D.ico similarity index 100% rename from launcher-client-wpf/Resources/logo-D.ico rename to Launcher.Client.WPF/Resources/logo-D.ico diff --git a/Launcher.Client/Launcher.Client.csproj b/Launcher.Client/Launcher.Client.csproj new file mode 100644 index 0000000..c48f9b3 --- /dev/null +++ b/Launcher.Client/Launcher.Client.csproj @@ -0,0 +1,24 @@ + + + + net6.0 + disable + disable + Launcher.Client + full + Debug;Release + AnyCPU + + + + + + + + + + + + + + diff --git a/Launcher.Client/LauncherClient.cs b/Launcher.Client/LauncherClient.cs new file mode 100644 index 0000000..636ae8b --- /dev/null +++ b/Launcher.Client/LauncherClient.cs @@ -0,0 +1,31 @@ +global using System; +global using System.Diagnostics; +global using System.Net; +global using System.Text; +global using System.Collections.Generic; +global using System.Linq; +global using DTLib; +global using DTLib.Dtsod; +global using DTLib.Filesystem; +global using DTLib.Extensions; + +namespace Launcher.Client; + +public static class LauncherClient +{ + public static LauncherConfig Config; + public static readonly LauncherLogger Logger = new(); + + public static void Init() + { + Logger.Log("launcher starting..."); + Config = new LauncherConfig(); + Directory.Create("descriptors"); + Directory.Create("icons"); + Directory.Create("backgrounds"); + Directory.Create("installed"); + Directory.Create("settings"); + File.WriteAllText($"descriptors{Путь.Разд}default.descriptor.template", + EmbeddedResources.ReadText("Launcher.Client.Resources.default.descriptor.template")); + } +} \ No newline at end of file diff --git a/launcher-client-wpf/LauncherConfig.cs b/Launcher.Client/LauncherConfig.cs similarity index 93% rename from launcher-client-wpf/LauncherConfig.cs rename to Launcher.Client/LauncherConfig.cs index 165bec3..9a396f0 100644 --- a/launcher-client-wpf/LauncherConfig.cs +++ b/Launcher.Client/LauncherConfig.cs @@ -1,4 +1,4 @@ -namespace Launcher.Client.WPF; +namespace Launcher.Client; public class LauncherConfig { @@ -21,7 +21,7 @@ public class LauncherConfig { // читает дефолтный конфиг из ресурсов DtsodV23 updatedConfig; - DtsodV23 updatedDefault = new(EmbeddedResources.ReadText("Launcher.Client.WPF.Resources.launcher.dtsod")); + DtsodV23 updatedDefault = new(EmbeddedResources.ReadText("Launcher.Client.Resources.launcher.dtsod")); // проверка и обновление конфига if (File.Exists(configFile)) { diff --git a/launcher-client-wpf/LauncherLogger.cs b/Launcher.Client/LauncherLogger.cs similarity index 78% rename from launcher-client-wpf/LauncherLogger.cs rename to Launcher.Client/LauncherLogger.cs index 4cd5ddf..7943a7d 100644 --- a/launcher-client-wpf/LauncherLogger.cs +++ b/Launcher.Client/LauncherLogger.cs @@ -1,15 +1,14 @@ -using DTLib.Loggers; +using DTLib.Logging; -namespace Launcher.Client.WPF; +namespace Launcher.Client; public class LauncherLogger : ConsoleLogger { public const string LogfileDir = "launcher-logs"; - public LauncherLogger() : base(LogfileDir,"launcher-client-wpf") - { } + public LauncherLogger() : base(LogfileDir,"launcher-client") {} private readonly StringBuilder _buffer = new(); - public string Buffer + public string Buffer { get { lock (_buffer) return _buffer.ToString(); } } diff --git a/launcher-client-avalonia/Resources/default.descriptor.template b/Launcher.Client/Resources/default.descriptor.template similarity index 100% rename from launcher-client-avalonia/Resources/default.descriptor.template rename to Launcher.Client/Resources/default.descriptor.template diff --git a/launcher-client-avalonia/Resources/launcher.dtsod b/Launcher.Client/Resources/launcher.dtsod similarity index 100% rename from launcher-client-avalonia/Resources/launcher.dtsod rename to Launcher.Client/Resources/launcher.dtsod diff --git a/launcher-server/launcher-server.csproj b/Launcher.Server/Launcher.Server.csproj similarity index 100% rename from launcher-server/launcher-server.csproj rename to Launcher.Server/Launcher.Server.csproj diff --git a/launcher-server/Server.cs b/Launcher.Server/Server.cs similarity index 96% rename from launcher-server/Server.cs rename to Launcher.Server/Server.cs index b558b15..3d00c06 100644 --- a/launcher-server/Server.cs +++ b/Launcher.Server/Server.cs @@ -10,6 +10,7 @@ global using System.Text; global using System.Threading; global using System.Linq; using System.Globalization; +using DTLib.Logging; namespace Launcher.Server; @@ -17,7 +18,7 @@ static class Server { static readonly Socket mainSocket = new(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp); static DtsodV23 config; - private static readonly DTLib.Loggers.ConsoleLogger Logger = new("logs", "launcher-server"); + private static readonly ConsoleLogger Logger = new("logs", "launcher-server"); static readonly object manifestLocker = new(); @@ -29,7 +30,6 @@ static class Server Console.InputEncoding = Encoding.Unicode; Console.OutputEncoding = Encoding.Unicode; PublicLog.LogEvent += Logger.Log; - PublicLog.LogNoTimeEvent += Logger.Log; config = new DtsodV23(File.ReadAllText("launcher-server.dtsod")); Logger.Log("b", "local address: <", "c", config["local_ip"], "b", ">\npublic address: <", "c", OldNetwork.GetPublicIP(), "b", diff --git a/launcher-server/launcher-server.dtsod b/Launcher.Server/launcher-server.dtsod similarity index 100% rename from launcher-server/launcher-server.dtsod rename to Launcher.Server/launcher-server.dtsod diff --git a/dtlauncher.sln b/dtlauncher.sln index e873814..6b5e35f 100644 --- a/dtlauncher.sln +++ b/dtlauncher.sln @@ -3,9 +3,9 @@ Microsoft Visual Studio Solution File, Format Version 12.00 # Visual Studio Version 17 VisualStudioVersion = 17.1.32104.313 MinimumVisualStudioVersion = 10.0.40219.1 -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "launcher-server", "launcher-server\launcher-server.csproj", "{1F4D14EB-AF48-4B6C-A91B-B294D4281173}" +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Launcher.Server", "Launcher.Server\Launcher.Server.csproj", "{1F4D14EB-AF48-4B6C-A91B-B294D4281173}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "launcher-client-wpf", "launcher-client-wpf\launcher-client-wpf.csproj", "{A1F770F3-F6B1-4854-9BF0-093F85064B88}" +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Launcher.Client.WPF", "Launcher.Client.WPF\Launcher.Client.WPF.csproj", "{A1F770F3-F6B1-4854-9BF0-093F85064B88}" EndProject Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Solution Files", "Solution Files", "{F567AA49-E96B-43BD-95B5-A71F9FCB64E1}" ProjectSection(SolutionItems) = preProject @@ -13,7 +13,9 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Solution Files", "Solution README.md = README.md EndProjectSection EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "launcher-client-avalonia", "launcher-client-avalonia\launcher-client-avalonia.csproj", "{BC1FC2A0-159A-4F17-B076-B39775FB6AAC}" +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Launcher.Client.Avalonia", "Launcher.Client.Avalonia\Launcher.Client.Avalonia.csproj", "{BC1FC2A0-159A-4F17-B076-B39775FB6AAC}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Launcher.Client", "Launcher.Client\Launcher.Client.csproj", "{87427137-840D-4D09-A101-9481110682BD}" EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution @@ -33,6 +35,10 @@ Global {BC1FC2A0-159A-4F17-B076-B39775FB6AAC}.Debug|Any CPU.Build.0 = Debug|Any CPU {BC1FC2A0-159A-4F17-B076-B39775FB6AAC}.Release|Any CPU.ActiveCfg = Release|Any CPU {BC1FC2A0-159A-4F17-B076-B39775FB6AAC}.Release|Any CPU.Build.0 = Release|Any CPU + {87427137-840D-4D09-A101-9481110682BD}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {87427137-840D-4D09-A101-9481110682BD}.Debug|Any CPU.Build.0 = Debug|Any CPU + {87427137-840D-4D09-A101-9481110682BD}.Release|Any CPU.ActiveCfg = Release|Any CPU + {87427137-840D-4D09-A101-9481110682BD}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE diff --git a/launcher-client-avalonia/LauncherConfig.cs b/launcher-client-avalonia/LauncherConfig.cs deleted file mode 100644 index 27564a9..0000000 --- a/launcher-client-avalonia/LauncherConfig.cs +++ /dev/null @@ -1,65 +0,0 @@ -namespace Launcher.Client.Avalonia; - -public class LauncherConfig -{ - - public record struct Server(IPEndPoint EndPoint, string Domain) - { - public Server(string domain, int port) : this - (new IPEndPoint(Dns.GetHostAddresses(domain)[0], port), domain) - { } - public Server(IPAddress address, int port) : this - (new IPEndPoint(address, port), "") - { } - } - - public const int Version=1; - public Server[] ServerAddresses; - - const string configFile = "launcher.dtsod"; - public LauncherConfig() - { - // читает дефолтный конфиг из ресурсов - DtsodV23 updatedConfig; - DtsodV23 updatedDefault = new(EmbeddedResources.ReadText("Launcher.Client.Avalonia.Resources.launcher.dtsod")); - // проверка и обновление конфига - if (File.Exists(configFile)) - { - DtsodV23 oldConfig = new(File.ReadAllText(configFile)); - updatedConfig = DtsodConverter.UpdateByDefault(oldConfig, updatedDefault); - } - else updatedConfig = updatedDefault; - - // парсит парсит полученный дтсод в LauncherConfig - List serversD = updatedConfig["server"]; - ServerAddresses = new Server[serversD.Count]; - ushort i = 0; - foreach (DtsodV23 serverD in serversD) - { - int port = serverD["port"]; - // server must have or property - ServerAddresses[i++] = serverD.TryGetValue("domain", out dynamic dom) - ? new Server(dom, port) - : new Server(IPAddress.Parse(serverD["ip"]), port); - } - - WriteToFile(); - } - - // записывает обновлённый конфиг в файл - public void WriteToFile() - { - StringBuilder b = new(); - b.Append("version: ").Append(Version).Append(";\n"); - foreach (var server in ServerAddresses) - { - b.Append("$server: {\n\t"); - if (server.Domain == "") - b.Append("ip: \"").Append(server.EndPoint.Address); - else b.Append("domain: \"").Append(server.Domain); - b.Append("\";\n\tport: ") - .Append(server.EndPoint.Port) - .Append(";\n};\n"); - } - } -} \ No newline at end of file diff --git a/launcher-client-avalonia/LauncherLogger.cs b/launcher-client-avalonia/LauncherLogger.cs deleted file mode 100644 index 84c29c4..0000000 --- a/launcher-client-avalonia/LauncherLogger.cs +++ /dev/null @@ -1,31 +0,0 @@ -using DTLib.Loggers; - -namespace Launcher.Client.Avalonia; - -public class LauncherLogger : ConsoleLogger -{ - public const string LogfileDir = "launcher-logs"; - public LauncherLogger() : base(LogfileDir,"launcher-client-wpf") - { } - - private readonly StringBuilder _buffer = new(); - public string Buffer - { - get { lock (_buffer) return _buffer.ToString(); } - } - - public event Action MessageSent; - - public override void Log(params string[] msg) - { - base.Log(msg); - StringBuilder strb = new(); - if (msg.Length == 1) strb.Append(msg[0]); - else for (int i = 1; i < msg.Length; i += 2) - strb.Append(msg[i]); - strb.Append('\n'); - string msgConnected = strb.ToString(); - MessageSent?.Invoke(msgConnected); - lock (_buffer) _buffer.Append(msgConnected); - } -} \ No newline at end of file diff --git a/launcher-client-wpf/AssemblyInfo.cs b/launcher-client-wpf/AssemblyInfo.cs deleted file mode 100644 index d67ac18..0000000 --- a/launcher-client-wpf/AssemblyInfo.cs +++ /dev/null @@ -1,8 +0,0 @@ -[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) -)] diff --git a/launcher-client-wpf/Resources/default.descriptor.template b/launcher-client-wpf/Resources/default.descriptor.template deleted file mode 100644 index 876af23..0000000 --- a/launcher-client-wpf/Resources/default.descriptor.template +++ /dev/null @@ -1,6 +0,0 @@ -name: ""; #label, which displays in launcher -directory: ""; #name of program' directory on server and client -description: ""; #desctiption, which displays in launcher -icon: ""; #name of the icon file -background: ""; #name of the background file -launchcommand: ""; #command, which starts the program \ No newline at end of file diff --git a/launcher-client-wpf/Resources/launcher.dtsod b/launcher-client-wpf/Resources/launcher.dtsod deleted file mode 100644 index 60f367a..0000000 --- a/launcher-client-wpf/Resources/launcher.dtsod +++ /dev/null @@ -1,6 +0,0 @@ -version: 1; - -$server: { - ip: "127.0.0.1"; - port: 25000; -}; \ No newline at end of file