clear New Account

This commit is contained in:
1415ddfer 2024-08-04 18:24:17 +08:00
parent e069c3ccbc
commit b532d7ae05
8 changed files with 96 additions and 95 deletions

View File

@ -84,7 +84,7 @@ namespace Zerolauncher
}); });
DataStreamNew.Load(); DataStreamNew.Load();
_ = WebApiManager.StartListener(); _ = WebApiManager.StartListener();
AccountManager.initLoadData(); AccountManager.InitLoadData();
} }
protected override void OnExit(ExitEventArgs e) protected override void OnExit(ExitEventArgs e)

View File

@ -29,7 +29,7 @@ namespace Zerolauncher
memberBG.ContextMenu = CreateContextMenu(); memberBG.ContextMenu = CreateContextMenu();
int i = 0; int i = 0;
foreach (var account in AccountManager.accountsList) foreach (var account in AccountManager.AccountsList)
{ {
var member = new MemberControl(); var member = new MemberControl();
member.memberId = i++; member.memberId = i++;
@ -48,7 +48,7 @@ namespace Zerolauncher
//foreach (var btn in mLayout.Children.) //foreach (var btn in mLayout.Children.)
mLayout.Children.Clear(); mLayout.Children.Clear();
int i = 0; int i = 0;
foreach (var account in AccountManager.accountsList) foreach (var account in AccountManager.AccountsList)
{ {
var member = new MemberControl(); var member = new MemberControl();
member.memberId = i++; member.memberId = i++;
@ -124,7 +124,7 @@ namespace Zerolauncher
private void editTeamItem_Click(object sender, RoutedEventArgs e) private void editTeamItem_Click(object sender, RoutedEventArgs e)
{ {
EditTeamDialog.CreateDailog(AccountManager.teamName); EditTeamDialog.CreateDailog(AccountManager.TeamName);
} }
private void Button_Click_3(object sender, RoutedEventArgs e) private void Button_Click_3(object sender, RoutedEventArgs e)

View File

@ -3,34 +3,34 @@ using System.Diagnostics;
namespace Zerolauncher.Manager namespace Zerolauncher.Manager
{ {
internal class AccountManager internal static class AccountManager
{ {
static int teamId=0; static int _teamId;
public static string teamName = ""; public static string TeamName = "";
public static List<AccountNew>? accountsList; public static List<AccountNew>? AccountsList;
public static void initLoadData() public static void InitLoadData()
{ {
teamId = AccountData.teamIndex; _teamId = AccountData.TeamIndex;
foreach (var pair in GroupsData.data) foreach (var pair in GroupsData.Data)
{ {
Trace.WriteLine(pair.Key, pair.Value); Trace.WriteLine(pair.Key, pair.Value);
} }
teamName = GroupsData.data[teamId]; TeamName = GroupsData.Data[_teamId];
accountsList = AccountData.data[teamId]; AccountsList = AccountData.Data[_teamId];
} }
public static void ChangeTeam(int index) public static void ChangeTeam(int index)
{ {
teamId = TeamManager.Index2Key(index); _teamId = TeamManager.Index2Key(index);
teamId = AccountData.teamIndex; _teamId = AccountData.TeamIndex;
teamName = GroupsData.data[teamId]; TeamName = GroupsData.Data[_teamId];
accountsList = AccountData.data[teamId]; AccountsList = AccountData.Data[_teamId];
} }
public static void saveEdit() public static void SaveEdit()
{ {
DataStreamNew.Save(); DataStreamNew.Save();
MainWindow.Instance.ReloadBtn(); MainWindow.Instance.ReloadBtn();
@ -38,7 +38,7 @@ namespace Zerolauncher.Manager
public static bool AddAccount(AccountNew account) public static bool AddAccount(AccountNew account)
{ {
account.groupId = teamId; account.groupId = _teamId;
AccountData.AddAccount(account); AccountData.AddAccount(account);
DataStreamNew.Save(); DataStreamNew.Save();
@ -48,45 +48,53 @@ namespace Zerolauncher.Manager
public static bool AddAccounts(AccountNew account) public static bool AddAccounts(AccountNew account)
{ {
account.groupId = teamId; account.groupId = _teamId;
AccountData.AddAccount(account); AccountData.AddAccount(account);
return true; return true;
} }
public static void MoveAccount(int memberId, int newIndex) public static void MoveAccount(int memberId, int newIndex)
{ {
var group_id = TeamManager.Index2Key(newIndex); var groupId = TeamManager.Index2Key(newIndex);
var acc = accountsList[memberId]; if (AccountsList != null)
accountsList.RemoveAt(memberId); {
AccountData.CheckGroup(group_id); var acc = AccountsList[memberId];
AccountData.data[group_id].Add(acc); AccountsList.RemoveAt(memberId);
if (!AccountData.CheckGroup(groupId)) return;
AccountData.Data[groupId].Add(acc);
}
DataStreamNew.Save(); DataStreamNew.Save();
MainWindow.Instance.ReloadBtn(); MainWindow.Instance.ReloadBtn();
} }
public static void DeleteAccount(int index) { public static void DeleteAccount(int index) {
var nick = accountsList[index].nickName; if (AccountsList != null)
accountsList.RemoveAt(index); {
AccountData.dict.Remove(nick); var nick = AccountsList[index].nickName;
AccountsList.RemoveAt(index);
AccountData.Dict.Remove(nick);
}
DataStreamNew.Save(); DataStreamNew.Save();
MainWindow.Instance.ReloadBtn(); MainWindow.Instance.ReloadBtn();
} }
public static void editTeamName(string teamName0) public static void EditTeamName(string teamName0)
{ {
teamName = teamName0; TeamName = teamName0;
GroupsData.data[teamId] = teamName; GroupsData.Data[_teamId] = TeamName;
DataStreamNew.Save(); DataStreamNew.Save();
} }
public static bool DeleteTeam() public static bool DeleteTeam()
{ {
if (GroupsData.data.Keys.Count == 1) if (GroupsData.Data.Keys.Count == 1)
{ {
return false; return false;
} }
AccountData.RemoveGroup(); AccountData.RemoveGroup();
ChangeTeam(GroupsData.data.Keys.First()); ChangeTeam(GroupsData.Data.Keys.First());
DataStreamNew.Save(); DataStreamNew.Save();
MainWindow.Instance.ReloadBtn(); MainWindow.Instance.ReloadBtn();
return true; return true;
@ -94,18 +102,18 @@ namespace Zerolauncher.Manager
} }
internal class TeamManager internal static class TeamManager
{ {
public static int Index2Key(int index) { return GroupsData.data.ElementAt(index).Key; } public static int Index2Key(int index) { return GroupsData.Data.ElementAt(index).Key; }
public static string[] GetAllTeamName() public static string[] GetAllTeamName()
{ {
return GroupsData.data.Values.ToArray(); return GroupsData.Data.Values.ToArray();
} }
public static void addTeam(string teamName) public static void AddTeam(string teamName)
{ {
GroupsData.data.Add(GroupsData.data.Keys.LastOrDefault() + 1, teamName); GroupsData.Data.Add(GroupsData.Data.Keys.LastOrDefault() + 1, teamName);
DataStreamNew.Save(); DataStreamNew.Save();
} }
@ -113,7 +121,7 @@ namespace Zerolauncher.Manager
[System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)]
public static AccountNew? Nick2Acc(string nickName) public static AccountNew? Nick2Acc(string nickName)
{ {
return AccountData.dict.ContainsKey(nickName)? AccountData.dict[nickName]:null; return AccountData.Dict.GetValueOrDefault(nickName);
} }
} }

View File

@ -213,29 +213,29 @@ namespace Zerolauncher.Manager
} }
static class AccountData internal static class AccountData
{ {
public static int teamIndex; public static int TeamIndex;
public static Dictionary<int, List<AccountNew>> data = []; public static readonly Dictionary<int, List<AccountNew>> Data = [];
public static Dictionary<String, AccountNew> dict = []; public static readonly Dictionary<string, AccountNew> Dict = [];
public static void Init(DataItem data) public static void Init(DataItem dataItem)
{ {
data.ReSetOffset(); dataItem.ReSetOffset();
teamIndex = data.ReadInt(); TeamIndex = dataItem.ReadInt();
var accountCount = data.ReadInt(); var accountCount = dataItem.ReadInt();
for (int i = 0; i < accountCount; i++) for (var i = 0; i < accountCount; i++)
{ {
AddAccount(new AccountNew() AddAccount(new AccountNew()
{ {
groupId = data.ReadInt(), groupId = dataItem.ReadInt(),
providerId = data.ReadInt(), providerId = dataItem.ReadInt(),
serverId = data.ReadInt(), serverId = dataItem.ReadInt(),
userName = data.ReadStr(), userName = dataItem.ReadStr(),
userPWD = data.ReadStr(), userPWD = dataItem.ReadStr(),
nickName = data.ReadStr() nickName = dataItem.ReadStr()
}); });
} }
} }
@ -255,41 +255,35 @@ namespace Zerolauncher.Manager
public static void AddAccount(AccountNew item) public static void AddAccount(AccountNew item)
{ {
int count = 0; var count = 0;
while (dict.ContainsKey(item.nickName)) while (Dict.ContainsKey(item.nickName))
item.nickName += count++.ToString(); item.nickName += count++.ToString();
CheckGroup(item.groupId); if (CheckGroup(item.groupId)) Data[item.groupId].Add(item);
data[item.groupId].Add(item);
} }
public static bool CheckGroup(int groupId) public static bool CheckGroup(int groupId)
{ {
if (GroupsData.data.ContainsKey(groupId)) if (!GroupsData.Data.ContainsKey(groupId)) return false;
{ if (!Data.ContainsKey(groupId)) Data.Add(groupId, []);
if (!data.ContainsKey(groupId)) data.Add(groupId, new List<AccountNew> { });
return true; return true;
} }
return false;
}
public static void RemoveGroup() public static void RemoveGroup()
{ {
GroupsData.data.Remove(teamIndex); GroupsData.Data.Remove(TeamIndex);
foreach (var item in data[teamIndex]) foreach (var item in Data[TeamIndex])
{ {
dict.Remove(item.nickName); Dict.Remove(item.nickName);
} }
data.Remove(teamIndex); Data.Remove(TeamIndex);
} }
public static DataItem Out() public static DataItem Out()
{ {
var res = new DataItem(NameSpace.Accounts, []); var res = new DataItem(NameSpace.Accounts, []);
res.WriteInt(teamIndex); res.WriteInt(TeamIndex);
res.WriteInt(data.Count); res.WriteInt(Data.Count);
foreach (var items in data.Values) foreach (var item in Data.Values.SelectMany(items => items))
{
foreach (var item in items)
{ {
res.WriteInt(item.groupId); res.WriteInt(item.groupId);
res.WriteInt(item.providerId); res.WriteInt(item.providerId);
@ -298,33 +292,32 @@ namespace Zerolauncher.Manager
res.WriteString(item.userPWD); res.WriteString(item.userPWD);
res.WriteString(item.nickName); res.WriteString(item.nickName);
} }
}
return res; return res;
} }
} }
static class GroupsData internal static class GroupsData
{ {
public static Dictionary<int, String> data = []; public static readonly Dictionary<int, string> Data = [];
public static void Init(DataItem data) public static void Init(DataItem dataItem)
{ {
int count = data.ReadInt(); var count = dataItem.ReadInt();
for (int i = 0; i < count; i++) for (var i = 0; i < count; i++)
{ {
GroupsData.data.Add(data.ReadInt(), data.ReadStr()); Data.Add(dataItem.ReadInt(), dataItem.ReadStr());
} }
} }
public static void InitDefaultData() public static void InitDefaultData()
{ {
data.Add(0, "队伍1"); Data.Add(0, "队伍1");
} }
public static DataItem Out() public static DataItem Out()
{ {
var res = new DataItem(NameSpace.Groups, []); var res = new DataItem(NameSpace.Groups, []);
res.WriteInt(data.Count); res.WriteInt(Data.Count);
foreach (var item in data) foreach (var item in Data)
{ {
res.WriteInt(item.Key); res.WriteInt(item.Key);
res.WriteString(item.Value); res.WriteString(item.Value);

View File

@ -59,7 +59,7 @@ namespace Zerolauncher.Manager
public static bool CreateGame(int memberId) public static bool CreateGame(int memberId)
{ {
return CreateGame(AccountManager.accountsList[memberId]); return CreateGame(AccountManager.AccountsList[memberId]);
} }
public static int CheckGameState(AccountNew account) public static int CheckGameState(AccountNew account)

View File

@ -28,7 +28,7 @@ namespace Zerolauncher.dialog
if (EditMemberDialog.member != null) if (EditMemberDialog.member != null)
{ {
int index = (int)EditMemberDialog.member; int index = (int)EditMemberDialog.member;
var acc = AccountManager.accountsList[index]; var acc = AccountManager.AccountsList[index];
cb_pid.SelectedIndex = acc.providerId; cb_pid.SelectedIndex = acc.providerId;
cb_sid.SelectedIndex = acc.serverId; cb_sid.SelectedIndex = acc.serverId;
edit_acc.Text = acc.userName; edit_acc.Text = acc.userName;
@ -70,13 +70,13 @@ namespace Zerolauncher.dialog
return; return;
} }
int index = (int)EditMemberDialog.member; int index = (int)EditMemberDialog.member;
var acc = AccountManager.accountsList[index]; var acc = AccountManager.AccountsList[index];
acc.providerId = cb_pid.SelectedIndex; acc.providerId = cb_pid.SelectedIndex;
acc.serverId = cb_sid.SelectedIndex; acc.serverId = cb_sid.SelectedIndex;
acc.userName = edit_acc.Text; acc.userName = edit_acc.Text;
acc.userPWD = edit_pwd.Password; acc.userPWD = edit_pwd.Password;
acc.nickName = edit_nick.Text; acc.nickName = edit_nick.Text;
AccountManager.saveEdit(); AccountManager.SaveEdit();
EditMemberDialog.Close(); EditMemberDialog.Close();
return; return;
} }

View File

@ -25,7 +25,7 @@ namespace Zerolauncher.dialog
MessageBox.Show("昵称不能为空喵!", "提示"); MessageBox.Show("昵称不能为空喵!", "提示");
return; return;
} }
if (isEditModle) AccountManager.editTeamName(edit_name.Text); else TeamManager.addTeam(edit_name.Text); if (isEditModle) AccountManager.EditTeamName(edit_name.Text); else TeamManager.AddTeam(edit_name.Text);
EditTeamDialog.Close(); EditTeamDialog.Close();
} }

View File

@ -68,7 +68,7 @@ namespace Zerolauncher.dialog
return; return;
} }
MessageBox.Show("添加完成喵!", "提示"); MessageBox.Show("添加完成喵!", "提示");
AccountManager.saveEdit(); AccountManager.SaveEdit();
AddMemebersDialog.Close(); AddMemebersDialog.Close();
} }
else else