mirror of
https://gitlab.com/nullmax17/PlombirLauncher.git
synced 2025-03-14 18:01:12 +03:00
Compare commits
4 Commits
d5c8d36d61
...
93b619228e
Author | SHA1 | Date | |
---|---|---|---|
93b619228e | |||
de64c08364 | |||
6bd8cab129 | |||
7a8d262aed |
@ -17,17 +17,15 @@ namespace Plombir;
|
||||
public class Launcher
|
||||
{
|
||||
private readonly string _version;
|
||||
private readonly string _nickname;
|
||||
static private MinecraftPath? _mcPath;
|
||||
static private MinecraftLauncher? _mcLauncher;
|
||||
|
||||
public int DownloadProgress;
|
||||
public string? DownloadStatus;
|
||||
|
||||
public Launcher(string userName, string version, string? location = null)
|
||||
public Launcher(string version, string? location = null)
|
||||
{
|
||||
_version = version;
|
||||
_nickname = userName;
|
||||
_mcPath = new($"{location}/{version}/minecraft");
|
||||
_mcLauncher = new(_mcPath);
|
||||
}
|
||||
@ -51,15 +49,29 @@ public class Launcher
|
||||
return;
|
||||
}
|
||||
|
||||
async public Task RunLauncher()
|
||||
public MSession CreateOfflineSession(string nickname)
|
||||
{
|
||||
var s = MSession.CreateOfflineSession(nickname);
|
||||
if (s is null) throw new NullReferenceException("Tried creating offline session, but it's resulted in null!");
|
||||
return s;
|
||||
}
|
||||
|
||||
public MSession CreateLicensedSession(string uuid, string accsessToken, string nickname)
|
||||
{
|
||||
var s = new MSession(nickname, accsessToken, uuid);
|
||||
if (s is null) throw new NullReferenceException("Tried creating licensed session, but it's resulted in null!");
|
||||
return s;
|
||||
}
|
||||
|
||||
async public Task RunLauncher(MSession session)
|
||||
{
|
||||
if (_mcLauncher is null)
|
||||
throw new NullReferenceException("Failed to run launcher! Launcher is null!");
|
||||
|
||||
var process = await _mcLauncher.BuildProcessAsync(_version, new MLaunchOption
|
||||
{
|
||||
|
||||
Session = MSession.CreateOfflineSession(_nickname),
|
||||
// Passing session, to support offline and licensed login methods.
|
||||
Session = session,
|
||||
MaximumRamMb = 4096,
|
||||
|
||||
}) ?? throw new Exception("Failed to start minecraft process!");
|
||||
|
@ -37,11 +37,13 @@ static public class Utils
|
||||
var loginHandler = JELoginHandlerBuilder.BuildDefault();
|
||||
|
||||
var authenticator = loginHandler.CreateAuthenticatorWithNewAccount(default);
|
||||
authenticator.AddMsalOAuth(app, msal => msal.DeviceCode(deviceCode =>
|
||||
{
|
||||
Console.WriteLine(deviceCode.Message);
|
||||
return Task.CompletedTask;
|
||||
}));
|
||||
authenticator.AddMsalOAuth(app, msal => msal.SystemBrowser());
|
||||
// authenticator.AddMsalOAuth(app, msal => msal.DeviceCode(deviceCode =>
|
||||
// {
|
||||
// Console.WriteLine(deviceCode.Message);
|
||||
// return Task.CompletedTask;
|
||||
// }));
|
||||
// Im too lazy to implement this type of auth
|
||||
authenticator.AddMsalOAuth(app, msal => msal.Silent());
|
||||
authenticator.AddXboxAuthForJE(xbox => xbox.Basic());
|
||||
authenticator.AddJEAuthenticator();
|
||||
|
Binary file not shown.
Before Width: | Height: | Size: 911 B After Width: | Height: | Size: 1.5 KiB |
@ -10,12 +10,11 @@ public class ConfigManager
|
||||
static private readonly string defaultVersion = "1.20.1";
|
||||
static private readonly string defaultNickname = "slugcat";
|
||||
|
||||
static private readonly string currentTweaksVersion = "1.2.0";
|
||||
static private readonly string currentTweaksVersion = "1.2.1";
|
||||
|
||||
static private readonly string defaultLoginType = "offline";
|
||||
static private readonly string defaultUuid = "offline";
|
||||
static private readonly string defaultAccsessToken = "offline";
|
||||
static private readonly string defaultClientToken = "offline";
|
||||
|
||||
public static void BuildDefault()
|
||||
{
|
||||
@ -40,7 +39,6 @@ public class ConfigManager
|
||||
["login-method"] = defaultLoginType,
|
||||
["uuid"] = defaultUuid,
|
||||
["accsess-token"] = defaultAccsessToken,
|
||||
["client-token"] = defaultClientToken,
|
||||
|
||||
|
||||
};
|
||||
@ -64,7 +62,7 @@ public class ConfigManager
|
||||
TomlTable table = TOML.Parse(reader);
|
||||
|
||||
// If config don't contains it means it's oudated or broken.
|
||||
if (!table.TryGetNode(key, out var node))
|
||||
if (!IsValueExists(table, key))
|
||||
{
|
||||
WriteInConfig(key, "NaN");
|
||||
}
|
||||
@ -75,34 +73,46 @@ public class ConfigManager
|
||||
if ((key == "tweaks-version") & (table[key] != currentTweaksVersion))
|
||||
{
|
||||
Console.WriteLine("Warning! Tweaks version mismatch!");
|
||||
WriteInConfig("tweaks-version", "wrong-version");
|
||||
}
|
||||
return table[key];
|
||||
}
|
||||
|
||||
// Handling out-dated or broken toml files by filling with defaults
|
||||
switch (key)
|
||||
{
|
||||
case "runtime-path": { WriteInConfig(key, defaultRuntime); return defaultRuntime; }
|
||||
case "last-version-launched": { WriteInConfig(key, defaultVersion); return defaultVersion; }
|
||||
case "nickname": { WriteInConfig(key, defaultNickname); return defaultNickname; }
|
||||
|
||||
case "accsess-token": { WriteInConfig(key, defaultAccsessToken); return defaultAccsessToken; }
|
||||
case "client-token": { WriteInConfig(key, defaultClientToken); return defaultClientToken; }
|
||||
case "uuid": { WriteInConfig(key, defaultUuid); return defaultUuid; }
|
||||
case "login-method": { WriteInConfig(key, defaultLoginType); return defaultLoginType; }
|
||||
case "tweaks-version":
|
||||
{
|
||||
WriteInConfig(key, currentTweaksVersion);
|
||||
Console.WriteLine("Warning! Can't locate tweaks version! Attempting auto recovery...");
|
||||
return "possibly broken";
|
||||
}
|
||||
}
|
||||
|
||||
return null;
|
||||
return RepairConfig(key);
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
public static bool IsValueExists(TomlTable table, string key)
|
||||
{
|
||||
if (table.TryGetNode(key, out var _))
|
||||
return true;
|
||||
return false;
|
||||
}
|
||||
|
||||
private static string? RepairConfig(string key)
|
||||
{
|
||||
Console.WriteLine($"Warning! Can't locate {key} in tweaks! Fallback to defaults!");
|
||||
// Handling out-dated or broken toml files by filling with defaults
|
||||
switch (key)
|
||||
{
|
||||
case "runtime-path": { WriteInConfig(key, defaultRuntime); return defaultRuntime; }
|
||||
case "last-version-launched": { WriteInConfig(key, defaultVersion); return defaultVersion; }
|
||||
case "nickname": { WriteInConfig(key, defaultNickname); return defaultNickname; }
|
||||
|
||||
case "accsess-token": { WriteInConfig(key, defaultAccsessToken); return defaultAccsessToken; }
|
||||
case "uuid": { WriteInConfig(key, defaultUuid); return defaultUuid; }
|
||||
case "login-method": { WriteInConfig(key, defaultLoginType); return defaultLoginType; }
|
||||
case "tweaks-version":
|
||||
{
|
||||
WriteInConfig(key, currentTweaksVersion);
|
||||
return "possibly broken";
|
||||
}
|
||||
}
|
||||
|
||||
return null;
|
||||
}
|
||||
|
||||
public static void WriteInConfig(string key, dynamic value)
|
||||
{
|
||||
if (!File.Exists("tweaks.toml"))
|
||||
|
@ -10,18 +10,23 @@ public class LauncherUtils
|
||||
{
|
||||
public async static Task CreateMinecraftInstance(MainWindowViewModel vm, Window windowCaller)
|
||||
{
|
||||
var licenseStatus = ConfigManager.ReadConfig("login-method");
|
||||
|
||||
if (vm.Usernick is null) throw new NullReferenceException("Failed to create minecraft instance! Nickname is null!");
|
||||
if (vm.SelectedVersion is null) throw new NullReferenceException("Failed to create minecraft instance! Selected version is null!");
|
||||
|
||||
System.Console.WriteLine($"Creating minecraft instance for {vm.Usernick}, {vm.SelectedVersion} in {vm.RuntimeLocation}");
|
||||
LoadingWindow loading = new(vm.Usernick, vm.SelectedVersion, vm.RuntimeLocation);
|
||||
ConfigManager.WriteInConfig("last-version-launched", vm.SelectedVersion);
|
||||
ConfigManager.WriteInConfig("nickname", vm.Usernick);
|
||||
LoadingWindow loading = new(vm);
|
||||
|
||||
SaveCurrentVariablesToConfig(vm);
|
||||
|
||||
loading.Show();
|
||||
await loading.InitLoading();
|
||||
loading.Close();
|
||||
await loading.RunMinecraft();
|
||||
|
||||
if (licenseStatus == "microsoft") await loading.RunMinecraft(true);
|
||||
else await loading.RunMinecraft(false);
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
@ -29,4 +34,9 @@ public class LauncherUtils
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
private static void SaveCurrentVariablesToConfig(MainWindowViewModel vm)
|
||||
{
|
||||
ConfigManager.WriteInConfig("last-version-launched", vm.SelectedVersion);
|
||||
}
|
||||
}
|
||||
|
@ -23,9 +23,6 @@ public partial class MainWindowViewModel : ViewModelBase
|
||||
private string? _accsessToken = ConfigManager.ReadConfig("accsess-token");
|
||||
public string? AccsesToken { get => _accsessToken; set { _accsessToken = value; OnPropertyChanged(nameof(AccsesToken)); } }
|
||||
|
||||
private string? _clientToken = ConfigManager.ReadConfig("client-token");
|
||||
public string? ClientToken { get => _clientToken; set { _clientToken = value; OnPropertyChanged(nameof(ClientToken)); } }
|
||||
|
||||
private string? _uuid = ConfigManager.ReadConfig("uuid");
|
||||
public string? UUID { get => _uuid; set { _uuid = value; OnPropertyChanged(nameof(UUID)); } }
|
||||
|
||||
|
@ -13,12 +13,14 @@ public partial class LoadingWindow : Window
|
||||
{
|
||||
private Launcher ln;
|
||||
private Task? _buildingTask;
|
||||
private readonly MainWindowViewModel _mainWindowVM;
|
||||
|
||||
// Tokens for controlling download task.
|
||||
CancellationTokenSource tokenSource = new CancellationTokenSource();
|
||||
public LoadingWindow(string nickname, string? version = null, string? location = null)
|
||||
public LoadingWindow(MainWindowViewModel mainWindowVM)
|
||||
{
|
||||
ln = new Launcher(nickname, version ?? "1.20.1", location ?? "./runtime");
|
||||
_mainWindowVM = mainWindowVM;
|
||||
ln = new Launcher(_mainWindowVM.SelectedVersion ?? "1.20.1", _mainWindowVM.RuntimeLocation ?? "./runtime");
|
||||
InitializeComponent();
|
||||
DataContext = new LoadingWindowViewModel();
|
||||
}
|
||||
@ -52,9 +54,14 @@ public partial class LoadingWindow : Window
|
||||
|
||||
}
|
||||
|
||||
public async Task RunMinecraft()
|
||||
public async Task RunMinecraft(bool IsLicensed)
|
||||
{
|
||||
await ln.RunLauncher();
|
||||
var session = ln.CreateOfflineSession(_mainWindowVM.Usernick);
|
||||
if (IsLicensed)
|
||||
{
|
||||
session = ln.CreateLicensedSession(_mainWindowVM.UUID, _mainWindowVM.AccsesToken, _mainWindowVM.Usernick);
|
||||
}
|
||||
await ln.RunLauncher(session);
|
||||
}
|
||||
|
||||
private void onStopDownloadClick(object sender, RoutedEventArgs e)
|
||||
|
@ -42,7 +42,7 @@
|
||||
|
||||
</Border>
|
||||
<TextBlock FontFamily="{StaticResource QuicksandFont}"
|
||||
HorizontalAlignment="Right" Text="v1.1.0 - nullmax17"/>
|
||||
HorizontalAlignment="Right" Text="v1.2.1 - Plombir Contribuitors"/>
|
||||
</StackPanel>
|
||||
|
||||
<!-- Settings for launcher -->
|
||||
@ -77,14 +77,6 @@
|
||||
HorizontalAlignment="Center"
|
||||
CornerRadius="10"
|
||||
Padding="15">
|
||||
<!-- <StackPanel>
|
||||
<TextBlock
|
||||
HorizontalAlignment="Center"
|
||||
Text="Insert username:"
|
||||
FontFamily="{StaticResource QuicksandFont}"/>
|
||||
<TextBox Margin="5" Text="{Binding Usernick, Mode=TwoWay}" Width="200" />
|
||||
|
||||
</StackPanel> -->
|
||||
|
||||
<Grid>
|
||||
<Grid.RowDefinitions>
|
||||
@ -103,7 +95,7 @@
|
||||
Click="OnLaunchMinecraftClick"
|
||||
HorizontalAlignment="Center"/>
|
||||
|
||||
|
||||
<!-- Selecting version -->
|
||||
<Button
|
||||
Grid.Column="1"
|
||||
Grid.Row="1"
|
||||
@ -112,6 +104,7 @@
|
||||
Click="OnChooseVersionClick"
|
||||
HorizontalAlignment="Center"/>
|
||||
|
||||
<!-- Account managment -->
|
||||
<Image
|
||||
Height="60"
|
||||
Width="60"
|
||||
@ -126,17 +119,6 @@
|
||||
|
||||
</Border>
|
||||
|
||||
|
||||
<!-- Version selection -->
|
||||
<!-- <Border
|
||||
Background="#353535"
|
||||
HorizontalAlignment="Center"
|
||||
Width="150"
|
||||
CornerRadius="10"
|
||||
Padding="10">
|
||||
|
||||
|
||||
</Border> -->
|
||||
</StackPanel>
|
||||
|
||||
<!-- Minecraft area end -->
|
||||
|
@ -29,7 +29,6 @@ public partial class MainWindow : Window
|
||||
|
||||
var vm = DataContext as MainWindowViewModel;
|
||||
await LauncherUtils.CreateMinecraftInstance(vm, root);
|
||||
button.Content = "Minecraft launched";
|
||||
|
||||
}
|
||||
|
||||
|
@ -16,7 +16,7 @@
|
||||
MinHeight="400"
|
||||
MaxWidth="500"
|
||||
MaxHeight="400"
|
||||
Background="#353535"
|
||||
Background="#542434"
|
||||
>
|
||||
|
||||
<StackPanel>
|
||||
@ -39,7 +39,7 @@
|
||||
Text="Session nickname: "
|
||||
FontFamily="{StaticResource QuicksandFont}"
|
||||
/>
|
||||
<TextBlock x:Name="currentNickname" />
|
||||
<TextBlock x:Name="currentNickname" Foreground="#d9ccfb"/>
|
||||
</StackPanel>
|
||||
|
||||
<StackPanel Orientation="Horizontal">
|
||||
@ -47,7 +47,15 @@
|
||||
Text="Session login method: "
|
||||
FontFamily="{StaticResource QuicksandFont}"
|
||||
/>
|
||||
<TextBlock x:Name="loginMethod" />
|
||||
<TextBlock x:Name="loginMethod" Foreground="#d9ccfb" />
|
||||
</StackPanel>
|
||||
|
||||
<StackPanel Orientation="Horizontal">
|
||||
<TextBlock
|
||||
Text="Session uuid: "
|
||||
FontFamily="{StaticResource QuicksandFont}"
|
||||
/>
|
||||
<TextBlock x:Name="currentUuid" Foreground="#d9ccfb" />
|
||||
</StackPanel>
|
||||
|
||||
</StackPanel>
|
||||
@ -86,6 +94,13 @@
|
||||
HorizontalAlignment="Left"
|
||||
/>
|
||||
|
||||
<Button
|
||||
FontFamily="{StaticResource QuicksandFont}"
|
||||
Content="Save"
|
||||
HorizontalAlignment="Center"
|
||||
Click="OnSaveButtonClick"
|
||||
/>
|
||||
|
||||
|
||||
</StackPanel>
|
||||
</Border>
|
||||
@ -132,13 +147,6 @@
|
||||
|
||||
</Border>
|
||||
|
||||
<Button
|
||||
FontFamily="{StaticResource QuicksandFont}"
|
||||
Content="Save"
|
||||
HorizontalAlignment="Center"
|
||||
Click="OnSaveButtonClick"
|
||||
/>
|
||||
|
||||
</StackPanel>
|
||||
|
||||
</Window>
|
||||
|
@ -13,9 +13,15 @@ public partial class SessionManagmentWindow : Window
|
||||
{
|
||||
InitializeComponent();
|
||||
_mainWindowVM = mainWindowVM;
|
||||
PopulateInfo();
|
||||
}
|
||||
|
||||
private void PopulateInfo()
|
||||
{
|
||||
inputNickname.Text = _mainWindowVM.Usernick; // setting default nickname.
|
||||
currentNickname.Text = _mainWindowVM.Usernick;
|
||||
loginMethod.Text = _mainWindowVM.LoginMethod;
|
||||
currentUuid.Text = _mainWindowVM.UUID;
|
||||
}
|
||||
|
||||
private void OnSaveButtonClick(object sender, RoutedEventArgs e)
|
||||
@ -23,9 +29,15 @@ public partial class SessionManagmentWindow : Window
|
||||
if (sender is not Button button) return;
|
||||
|
||||
_mainWindowVM.Usernick = inputNickname.Text;
|
||||
_mainWindowVM.LoginMethod = "offline"; // Swapping to offline method
|
||||
_mainWindowVM.UUID = "offline"; // Just to be sure
|
||||
_mainWindowVM.AccsesToken = "offline";
|
||||
|
||||
Console.WriteLine($"Changing nickname to {inputNickname.Text}");
|
||||
|
||||
button.Content = "Saved!";
|
||||
SaveSessionInfo();
|
||||
PopulateInfo();
|
||||
}
|
||||
|
||||
async private void OnMicrosoftLoginClick(object sender, RoutedEventArgs e)
|
||||
@ -35,6 +47,15 @@ public partial class SessionManagmentWindow : Window
|
||||
_mainWindowVM.Usernick = session.Username;
|
||||
_mainWindowVM.UUID = session.UUID;
|
||||
_mainWindowVM.AccsesToken = session.AccessToken;
|
||||
_mainWindowVM.ClientToken = session.ClientToken;
|
||||
SaveSessionInfo();
|
||||
PopulateInfo();
|
||||
}
|
||||
|
||||
private void SaveSessionInfo()
|
||||
{
|
||||
ConfigManager.WriteInConfig("nickname", _mainWindowVM.Usernick);
|
||||
ConfigManager.WriteInConfig("login-method", _mainWindowVM.LoginMethod);
|
||||
ConfigManager.WriteInConfig("uuid", _mainWindowVM.UUID);
|
||||
ConfigManager.WriteInConfig("accsess-token", _mainWindowVM.AccsesToken);
|
||||
}
|
||||
}
|
||||
|
@ -19,47 +19,51 @@
|
||||
Background="#353535"
|
||||
>
|
||||
|
||||
<Grid>
|
||||
<Grid.RowDefinitions>
|
||||
<RowDefinition Height="*" />
|
||||
<RowDefinition Height="*" />
|
||||
<RowDefinition Height="Auto" />
|
||||
</Grid.RowDefinitions>
|
||||
<Grid.ColumnDefinitions>
|
||||
<ColumnDefinition Width="*" />
|
||||
<ColumnDefinition Width="Auto" />
|
||||
</Grid.ColumnDefinitions>
|
||||
<StackPanel Grid.Row="0" Grid.ColumnSpan="2">
|
||||
<Window.Background>
|
||||
<ImageBrush Source="/Assets/Sprites/toml-paper.png" Stretch="UniformToFill"/>
|
||||
</Window.Background>
|
||||
|
||||
<StackPanel Margin="5">
|
||||
|
||||
<StackPanel HorizontalAlignment="Center">
|
||||
<TextBlock
|
||||
Text="All tweaks can be found in TOML near executable."
|
||||
FontFamily="{StaticResource QuicksandFont}"
|
||||
/>
|
||||
|
||||
<TextBlock
|
||||
x:Name="tweaksVersion"
|
||||
FontFamily="{StaticResource QuicksandFont}"
|
||||
/>
|
||||
|
||||
</StackPanel>
|
||||
|
||||
<StackPanel Margin="20">
|
||||
|
||||
<StackPanel>
|
||||
|
||||
<TextBlock
|
||||
HorizontalAlignment="Center"
|
||||
Text="All tweaks can be found in TOML near executable."
|
||||
x:Name="currentDir"
|
||||
FontFamily="{StaticResource QuicksandFont}"
|
||||
/>
|
||||
|
||||
<TextBlock
|
||||
HorizontalAlignment="Center"
|
||||
x:Name="tweaksVersion"
|
||||
FontFamily="{StaticResource QuicksandFont}"
|
||||
/>
|
||||
|
||||
</StackPanel>
|
||||
|
||||
<StackPanel Grid.Row="1" Grid.Column="0">
|
||||
|
||||
<Button
|
||||
Margin="5"
|
||||
Content="Select minecraft folder"
|
||||
Click="OnFilePickerClick"
|
||||
HorizontalAlignment="Center"
|
||||
/>
|
||||
|
||||
|
||||
</StackPanel>
|
||||
|
||||
<StackPanel Grid.Row="2" Grid.Column="1">
|
||||
<Image Source="/Assets/Sprites/toml-paper.png" Stretch="Uniform" />
|
||||
</StackPanel>
|
||||
|
||||
<!-- <StackPanel Grid.Row="2" Grid.Column="1">
|
||||
<Image Source="/Assets/Sprites/toml-paper.png" Stretch="Uniform" />
|
||||
|
||||
|
||||
</StackPanel>
|
||||
</StackPanel> -->
|
||||
|
||||
</Grid>
|
||||
</StackPanel>
|
||||
|
||||
</Window>
|
||||
|
@ -15,6 +15,7 @@ public partial class SettingsWindow : Window
|
||||
InitializeComponent();
|
||||
_mainWindowVM = mainWindowVM;
|
||||
tweaksVersion.Text = $"Current tweaks version: {_mainWindowVM.TweaksVersion}";
|
||||
currentDir.Text = $"Current saving directory: {_mainWindowVM.RuntimeLocation}";
|
||||
}
|
||||
|
||||
private async void OnFilePickerClick(object sender, RoutedEventArgs args)
|
||||
@ -36,6 +37,7 @@ public partial class SettingsWindow : Window
|
||||
if (location is null) throw new NullReferenceException("Invalid location selected!");
|
||||
_mainWindowVM.RuntimeLocation = location;
|
||||
System.Console.WriteLine($"Selected {_mainWindowVM.RuntimeLocation}.");
|
||||
currentDir.Text = $"Current saving directory: {_mainWindowVM.RuntimeLocation}";
|
||||
ConfigManager.WriteInConfig("runtime-path", location);
|
||||
}
|
||||
}
|
||||
|
@ -21,3 +21,4 @@ Licensed in MIT!
|
||||
- [Minecraft](https://www.minecraft.net)
|
||||
- [Cmllib](https://github.com/CmlLib/CmlLib.Core.git) - MIT license
|
||||
- [Avalonia UI](https://github.com/AvaloniaUI/Avalonia) - MIT license
|
||||
- [Tommy](https://github.com/dezhidki/Tommy) - MIT license
|
||||
|
@ -1,7 +1,7 @@
|
||||
cd ../Launcher-UI
|
||||
|
||||
out_dir=../package/out/build
|
||||
archieve_name=PlombirLinux-v1-1-0.tar.gz
|
||||
archieve_name=PlombirLinux-v1-2-1.tar.gz
|
||||
|
||||
rm -r $out_dir
|
||||
|
||||
|
@ -1,7 +1,7 @@
|
||||
cd ../Launcher-UI
|
||||
|
||||
out_dir=../package/out/build
|
||||
archieve_name=PlombirOSX-v1-1-0.tar.gz
|
||||
archieve_name=PlombirOSX-v1-2-1.tar.gz
|
||||
|
||||
rm -r $out_dir
|
||||
|
||||
|
@ -1,7 +1,7 @@
|
||||
cd ../Launcher-UI
|
||||
|
||||
out_dir=../package/out/build
|
||||
archieve_name=PlombirWindows-v1-1-0.tar.gz
|
||||
archieve_name=PlombirWindows-v1-2-1.tar.gz
|
||||
|
||||
rm -r $out_dir
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user