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();
_ = WebApiManager.StartListener();
AccountManager.initLoadData();
AccountManager.InitLoadData();
}
protected override void OnExit(ExitEventArgs e)

View File

@ -29,7 +29,7 @@ namespace Zerolauncher
memberBG.ContextMenu = CreateContextMenu();
int i = 0;
foreach (var account in AccountManager.accountsList)
foreach (var account in AccountManager.AccountsList)
{
var member = new MemberControl();
member.memberId = i++;
@ -48,7 +48,7 @@ namespace Zerolauncher
//foreach (var btn in mLayout.Children.)
mLayout.Children.Clear();
int i = 0;
foreach (var account in AccountManager.accountsList)
foreach (var account in AccountManager.AccountsList)
{
var member = new MemberControl();
member.memberId = i++;
@ -124,7 +124,7 @@ namespace Zerolauncher
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)

View File

@ -3,34 +3,34 @@ using System.Diagnostics;
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;
foreach (var pair in GroupsData.data)
_teamId = AccountData.TeamIndex;
foreach (var pair in GroupsData.Data)
{
Trace.WriteLine(pair.Key, pair.Value);
}
teamName = GroupsData.data[teamId];
accountsList = AccountData.data[teamId];
TeamName = GroupsData.Data[_teamId];
AccountsList = AccountData.Data[_teamId];
}
public static void ChangeTeam(int index)
{
teamId = TeamManager.Index2Key(index);
teamId = AccountData.teamIndex;
teamName = GroupsData.data[teamId];
accountsList = AccountData.data[teamId];
_teamId = TeamManager.Index2Key(index);
_teamId = AccountData.TeamIndex;
TeamName = GroupsData.Data[_teamId];
AccountsList = AccountData.Data[_teamId];
}
public static void saveEdit()
public static void SaveEdit()
{
DataStreamNew.Save();
MainWindow.Instance.ReloadBtn();
@ -38,7 +38,7 @@ namespace Zerolauncher.Manager
public static bool AddAccount(AccountNew account)
{
account.groupId = teamId;
account.groupId = _teamId;
AccountData.AddAccount(account);
DataStreamNew.Save();
@ -48,45 +48,53 @@ namespace Zerolauncher.Manager
public static bool AddAccounts(AccountNew account)
{
account.groupId = teamId;
account.groupId = _teamId;
AccountData.AddAccount(account);
return true;
}
public static void MoveAccount(int memberId, int newIndex)
{
var group_id = TeamManager.Index2Key(newIndex);
var acc = accountsList[memberId];
accountsList.RemoveAt(memberId);
AccountData.CheckGroup(group_id);
AccountData.data[group_id].Add(acc);
var groupId = TeamManager.Index2Key(newIndex);
if (AccountsList != null)
{
var acc = AccountsList[memberId];
AccountsList.RemoveAt(memberId);
if (!AccountData.CheckGroup(groupId)) return;
AccountData.Data[groupId].Add(acc);
}
DataStreamNew.Save();
MainWindow.Instance.ReloadBtn();
}
public static void DeleteAccount(int index) {
var nick = accountsList[index].nickName;
accountsList.RemoveAt(index);
AccountData.dict.Remove(nick);
if (AccountsList != null)
{
var nick = AccountsList[index].nickName;
AccountsList.RemoveAt(index);
AccountData.Dict.Remove(nick);
}
DataStreamNew.Save();
MainWindow.Instance.ReloadBtn();
}
public static void editTeamName(string teamName0)
public static void EditTeamName(string teamName0)
{
teamName = teamName0;
GroupsData.data[teamId] = teamName;
TeamName = teamName0;
GroupsData.Data[_teamId] = TeamName;
DataStreamNew.Save();
}
public static bool DeleteTeam()
{
if (GroupsData.data.Keys.Count == 1)
if (GroupsData.Data.Keys.Count == 1)
{
return false;
}
AccountData.RemoveGroup();
ChangeTeam(GroupsData.data.Keys.First());
ChangeTeam(GroupsData.Data.Keys.First());
DataStreamNew.Save();
MainWindow.Instance.ReloadBtn();
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()
{
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();
}
@ -113,7 +121,7 @@ namespace Zerolauncher.Manager
[System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)]
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();
teamIndex = data.ReadInt();
var accountCount = data.ReadInt();
for (int i = 0; i < accountCount; i++)
dataItem.ReSetOffset();
TeamIndex = dataItem.ReadInt();
var accountCount = dataItem.ReadInt();
for (var i = 0; i < accountCount; i++)
{
AddAccount(new AccountNew()
{
groupId = data.ReadInt(),
providerId = data.ReadInt(),
serverId = data.ReadInt(),
userName = data.ReadStr(),
userPWD = data.ReadStr(),
nickName = data.ReadStr()
groupId = dataItem.ReadInt(),
providerId = dataItem.ReadInt(),
serverId = dataItem.ReadInt(),
userName = dataItem.ReadStr(),
userPWD = dataItem.ReadStr(),
nickName = dataItem.ReadStr()
});
}
}
@ -255,76 +255,69 @@ namespace Zerolauncher.Manager
public static void AddAccount(AccountNew item)
{
int count = 0;
while (dict.ContainsKey(item.nickName))
var count = 0;
while (Dict.ContainsKey(item.nickName))
item.nickName += count++.ToString();
CheckGroup(item.groupId);
data[item.groupId].Add(item);
if (CheckGroup(item.groupId)) Data[item.groupId].Add(item);
}
public static bool CheckGroup(int groupId)
{
if (GroupsData.data.ContainsKey(groupId))
{
if (!data.ContainsKey(groupId)) data.Add(groupId, new List<AccountNew> { });
return true;
}
return false;
if (!GroupsData.Data.ContainsKey(groupId)) return false;
if (!Data.ContainsKey(groupId)) Data.Add(groupId, []);
return true;
}
public static void RemoveGroup()
{
GroupsData.data.Remove(teamIndex);
foreach (var item in data[teamIndex])
GroupsData.Data.Remove(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()
{
var res = new DataItem(NameSpace.Accounts, []);
res.WriteInt(teamIndex);
res.WriteInt(data.Count);
foreach (var items in data.Values)
res.WriteInt(TeamIndex);
res.WriteInt(Data.Count);
foreach (var item in Data.Values.SelectMany(items => items))
{
foreach (var item in items)
{
res.WriteInt(item.groupId);
res.WriteInt(item.providerId);
res.WriteInt(item.serverId);
res.WriteString(item.userName);
res.WriteString(item.userPWD);
res.WriteString(item.nickName);
}
res.WriteInt(item.groupId);
res.WriteInt(item.providerId);
res.WriteInt(item.serverId);
res.WriteString(item.userName);
res.WriteString(item.userPWD);
res.WriteString(item.nickName);
}
return res;
}
}
static class GroupsData
internal static class GroupsData
{
public static Dictionary<int, String> data = [];
public static void Init(DataItem data)
public static readonly Dictionary<int, string> Data = [];
public static void Init(DataItem dataItem)
{
int count = data.ReadInt();
for (int i = 0; i < count; i++)
var count = dataItem.ReadInt();
for (var i = 0; i < count; i++)
{
GroupsData.data.Add(data.ReadInt(), data.ReadStr());
Data.Add(dataItem.ReadInt(), dataItem.ReadStr());
}
}
public static void InitDefaultData()
{
data.Add(0, "队伍1");
Data.Add(0, "队伍1");
}
public static DataItem Out()
{
var res = new DataItem(NameSpace.Groups, []);
res.WriteInt(data.Count);
foreach (var item in data)
res.WriteInt(Data.Count);
foreach (var item in Data)
{
res.WriteInt(item.Key);
res.WriteString(item.Value);

View File

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

View File

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

View File

@ -25,7 +25,7 @@ namespace Zerolauncher.dialog
MessageBox.Show("昵称不能为空喵!", "提示");
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();
}

View File

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