This commit is contained in:
1415ddfer 2024-03-11 10:57:12 +08:00
parent d09249272c
commit c43da86364
12 changed files with 64 additions and 104 deletions

View File

@ -11,20 +11,18 @@ namespace Zerolauncher
protected override void OnStartup(StartupEventArgs e)
{
base.OnStartup(e);
var a = CloundMananger.TakeQMessage();
a.Wait();
UpDateManager.DoCheckUpdate();
if (DownloadTask.state)
Task.Run(async () =>
{
await CloundMananger.TakeQMessage();
UpDateManager.DoCheckUpdate();
if (DownloadTask.state)
{
}else
{
DataStream.Load();
_ = WebApiManager.StartListener();
AccountManager.initLoadData();
}
}
}
});
DataStream.Load();
_ = WebApiManager.StartListener();
AccountManager.initLoadData(); }
protected override void OnExit(ExitEventArgs e)
{

View File

@ -104,22 +104,22 @@ namespace Zerolauncher
private void addMemberItem_Click(object sender, RoutedEventArgs e)
{
EditMemberDialog.CreateDailog(this, null);
EditMemberDialog.CreateDailog(null);
}
private void addMembersItem_Click(object sender, RoutedEventArgs e)
{
AddMemebersDialog.CreateDailog(this);
AddMemebersDialog.CreateDailog();
}
private void addTeamItem_Click(object sender, RoutedEventArgs e)
{
EditTeamDialog.CreateDailog(this);
EditTeamDialog.CreateDailog();
}
private void editTeamItem_Click(object sender, RoutedEventArgs e)
{
EditTeamDialog.CreateDailog(this, AccountManager.teamName);
EditTeamDialog.CreateDailog(AccountManager.teamName);
}
private void Button_Click(object sender, RoutedEventArgs e)

View File

@ -15,6 +15,7 @@ namespace Zerolauncher.Manager
class UpDateData
{
public static bool is_check = false;
public static bool state = false;
public static string version = "";
public static string tis = "";
@ -46,6 +47,7 @@ namespace Zerolauncher.Manager
{
CacheSha.errorCode = 2;
}
UpDateData.is_check = true;
}
static bool FormatMessage(string message)
@ -68,8 +70,8 @@ namespace Zerolauncher.Manager
{
if (sha0.Length < 90) return false;
int count;
var sha = SpaceEncoder.Decode(sha0[..86], out count);
if (sha == null)
var sha = SpaceEncoder.Decode(sha0, out count);
if (sha == null || sha.Length < 64)
{
//Console.WriteLine($"faile: {count}");
return false;

View File

@ -1,6 +1,4 @@
using System.Diagnostics;
using System.IO;
using System.Security.Cryptography;
using System.Windows;
using Zerolauncher.Defender;
@ -17,9 +15,19 @@ namespace Zerolauncher.Manager
return string.Format("{0}{1}{2}", account.providerId, account.serverId, account.userName);
}
public static bool CreateGame(Account account)
public static bool CreateGame(Account account, out bool showDialog)
{
showDialog = false;
if (UpDateData.is_check == false)
{
MessageBox.Show("正在更新数据请等待1-3秒。\n 请检查网络", "错误", MessageBoxButton.OKCancel, MessageBoxImage.Warning);
return true;
}
if (UpDateData.state)
{
showDialog = true;
return true;
}
var key = AccToKey(account);
if (mGame.ContainsKey(key)) { return false; }
if (CacheSha.errorCode != 0) {
@ -35,22 +43,21 @@ namespace Zerolauncher.Manager
MessageBox.Show("发生未知错误==EMS。\n 请联系管理员", "错误", MessageBoxButton.OKCancel, MessageBoxImage.Error);
break;
}
return false;
return true;
}
try
{
mGame[key] = new SingleGame(account);
}catch (Exception _ex)
{
MessageBox.Show("发生错误!\n如重复发生此错误\n请重新下载登陆器文件或联系管理员。", "错误", MessageBoxButton.OKCancel, MessageBoxImage.Error);
return false;
MessageBox.Show("发生错误!\n如重复发生此错误\n请重新下载大厅文件或联系管理员。", "错误", MessageBoxButton.OKCancel, MessageBoxImage.Error);
}
return true;
}
public static bool CreateGame(int memberId)
public static bool CreateGame(int memberId, out bool showDialog)
{
return CreateGame(AccountManager.accountsList[memberId]);
return CreateGame(AccountManager.accountsList[memberId], out showDialog);
}
public static int CheckGameState(Account account)

View File

@ -1,6 +1,6 @@
using System.Diagnostics;
using System.IO;
using System.Net;
using System.IO.Compression;
using System.Security.Cryptography;
using Zerolauncher.Defender;
@ -15,7 +15,8 @@ namespace Zerolauncher.Manager
class UpDateManager
{
public static bool isCheeking = false;
const string cache_file = "cache.zip";
static bool isCheeking = false;
public static void DoCheckUpdate(bool checkMain=true, bool needEngine = false)
{
@ -56,62 +57,10 @@ namespace Zerolauncher.Manager
isCheeking = false;
}
public static void DownLoad(string Url, string FileName, bool has)
public static void OnDownLoadDone()
{
bool Value = false;
WebResponse response = null;
Stream stream = null;
try
{
HttpWebRequest request = (HttpWebRequest)WebRequest.Create(Url);
response = request.GetResponse();
stream = response.GetResponseStream();
if (!response.ContentType.ToLower().StartsWith("text/"))
{
Value = SaveBinaryFile(response, FileName);
}
}
catch (Exception err)
{
string aa = err.ToString();
}
}
private static bool SaveBinaryFile(WebResponse response, string FileName)
{
bool Value = true;
byte[] buffer = new byte[1024];
try
{
if (File.Exists(FileName))
File.Delete(FileName);
Stream outStream = File.Create(FileName);
Stream inStream = response.GetResponseStream();
int l;
do
{
l = inStream.Read(buffer, 0, buffer.Length);
if (l > 0)
outStream.Write(buffer, 0, l);
}
while (l > 0);
outStream.Close();
inStream.Close();
}
catch
{
Value = false;
}
return Value;
ZipFile.ExtractToDirectory(cache_file, ".");
Process.Start("./upacket.bin");
}
}

View File

@ -80,7 +80,7 @@ namespace Zerolauncher.Manager
break;
case "/LoginGame":
{
if (EngineManager.CreateGame(acc))
if (EngineManager.CreateGame(acc, out _))
{
rb = new ResponesBody(0, 0, $"Account [{nick}] successful to start.");
}

9
StaticUpdatePath.cs Normal file
View File

@ -0,0 +1,9 @@
namespace Zerolauncher
{
class StaticUpdatePath
{
public const string cache_patch = "./.cache/";
public const string cache_file = "cache.zip";
public const string extract_file = "./.cache/un/";
}
}

View File

@ -35,8 +35,9 @@ namespace Zerolauncher.controls
if (!isMouseDown) return;
RenderTransform = new TranslateTransform(0, 0);
if (e.ChangedButton == MouseButton.Right) return;
if (!EngineManager.CreateGame(memberId)) MessageBox.Show("账号已启动!请勿重复启动", "提示");
bool needDialog;
if (!EngineManager.CreateGame(memberId, out needDialog)) MessageBox.Show("账号已启动!请勿重复启动", "提示");
if (needDialog) UpdateDialog.CreateDailog();
};
// 鼠标离开事件
@ -107,8 +108,8 @@ namespace Zerolauncher.controls
private void editItem_Click(object sender, RoutedEventArgs e)
{
Trace.WriteLine("edit member " + memberId.ToString());
EditMemberDialog.CreateDailog(MainWindow.Instance, memberId);
//Trace.WriteLine("edit member " + memberId.ToString());
EditMemberDialog.CreateDailog(memberId);
}
}
}

View File

@ -9,7 +9,7 @@ namespace Zerolauncher.dialog
public static int? member;
public static void CreateDailog(Window p, int? memberId)
public static void CreateDailog(int? memberId)
{
if (editControl != null || baseDialog != null)
{
@ -40,7 +40,7 @@ namespace Zerolauncher.dialog
static EditTeamControl? editControl;
public static bool CreateDailog(Window p, string? oldTeamName=null)
public static bool CreateDailog(string? oldTeamName=null)
{
if (editControl != null || baseDialog != null)
{
@ -77,7 +77,7 @@ namespace Zerolauncher.dialog
static BaseDialog? baseDialog;
static UseAccDataTextAdd? editControl;
public static void CreateDailog(Window p)
public static void CreateDailog()
{
if (editControl != null || baseDialog != null)
{
@ -106,7 +106,7 @@ namespace Zerolauncher.dialog
public static DownloadControl1? editControl;
public static bool ui_enale = false;
public static void CreateDailog(Window p)
public static void CreateDailog()
{
if (editControl != null || baseDialog != null)
{

View File

@ -44,7 +44,10 @@ namespace Zerolauncher.dialog
private static void OnDownloadFileCompleted(object? sender, AsyncCompletedEventArgs e)
{
if (UpdateDialog.ui_enale)
{
UpdateDialog.Close();
}
}
private static void OnDownloadProgressChanged(object? sender, DownloadProgressChangedEventArgs e)
@ -54,7 +57,6 @@ namespace Zerolauncher.dialog
UpdateDialog.editControl.pbDown.Value = e.ProgressPercentage;
UpdateDialog.editControl.text2.Text = $"{e.AverageBytesPerSecondSpeed}";
}
throw new NotImplementedException();
}
private static void OnDownloadStarted(object? sender, DownloadStartedEventArgs e)

View File

@ -1,9 +0,0 @@

namespace Zerolauncher.util
{
class Download
{
}
}

View File

@ -51,6 +51,7 @@ namespace Zerolauncher.util
counter = 0;
foreach (char c in hex)
{
if (sb.Length == 64) break;
counter++;
if (!map.Contains(c)) return null;
if (c != map[11])