Skip to content

Commit 4e35336

Browse files
authored
Merge pull request #33 from tsxlts/2.0.6.3
修复已知问题
2 parents 81769c4 + 2160d74 commit 4e35336

File tree

5 files changed

+140
-92
lines changed

5 files changed

+140
-92
lines changed

SteamAuthenticator/Events/UserPanelEvents.cs

Lines changed: 55 additions & 92 deletions
Original file line numberDiff line numberDiff line change
@@ -19,10 +19,10 @@ private void UsersPanel_SizeChanged(object sender, EventArgs e)
1919

2020
private async void addUserBtn_Click(object sender, EventArgs e)
2121
{
22-
await Login(false, null);
22+
await Login(null);
2323
}
2424

25-
private async void btnUser_Click(object sender, MouseEventArgs e)
25+
private void btnUser_Click(object sender, MouseEventArgs e)
2626
{
2727
if (e.Button != MouseButtons.Left)
2828
{
@@ -33,7 +33,7 @@ private async void btnUser_Click(object sender, MouseEventArgs e)
3333
SteamUserPanel panel = control.Parent as SteamUserPanel;
3434
UserClient userClient = panel.Client;
3535

36-
await SwitchUser(userClient);
36+
SetCurrentClient(userClient);
3737
}
3838

3939
private void copyCookieMenuItem_Click(object sender, EventArgs e)
@@ -89,15 +89,15 @@ private void copyRefreshTokenMenuItem_Click(object sender, EventArgs e)
8989
Utils.CopyText(refreshToken);
9090
}
9191

92-
private async void setCurrentClientMenuItem_Click(object sender, EventArgs e)
92+
private void setCurrentClientMenuItem_Click(object sender, EventArgs e)
9393
{
9494
ToolStripMenuItem menuItem = sender as ToolStripMenuItem;
9595
ContextMenuStrip menuStrip = (ContextMenuStrip)menuItem.GetCurrentParent();
9696

9797
SteamUserPanel panel = menuStrip.SourceControl.Parent as SteamUserPanel;
9898
UserClient userClient = panel.Client;
9999

100-
await SwitchUser(userClient);
100+
SetCurrentClient(userClient);
101101
}
102102

103103
private void settingMenuItem_Click(object sender, EventArgs e)
@@ -157,7 +157,7 @@ private async void reloginMenuItem_Click(object sender, EventArgs e)
157157
return;
158158
}
159159

160-
await Login(false, userClient.GetAccount());
160+
await Login(userClient.GetAccount());
161161
}
162162

163163
private async void logoutMenuItem_Click(object sender, EventArgs e)
@@ -190,7 +190,7 @@ private void removeUserMenuItem_Click(object sender, EventArgs e)
190190

191191
if (userClient.User.SteamId == currentClient?.User?.SteamId)
192192
{
193-
SetCurrentClient(Appsetting.Instance.Clients.FirstOrDefault() ?? userClient, true);
193+
SetCurrentClient(Appsetting.Instance.Clients.FirstOrDefault());
194194
}
195195
}
196196

@@ -279,121 +279,84 @@ private async Task LoadUsers()
279279
}
280280
}
281281

282-
private async Task<UserClient> Login(bool relogin, string account)
282+
private async Task<UserClient> Login(string defaultAccount)
283283
{
284-
if (relogin)
284+
Login login = new Login(defaultAccount);
285+
if (login.ShowDialog() != DialogResult.OK || !(login.Client?.LoggedIn ?? false))
285286
{
286-
if (MessageBox.Show($"帐号 {account} 已掉线,是否请重新登录", "提示", MessageBoxButtons.YesNo, MessageBoxIcon.Question) != DialogResult.Yes)
287-
{
288-
return null;
289-
}
287+
return null;
290288
}
291289

292-
Login login = new Login(account);
293-
if (login.ShowDialog() == DialogResult.OK && (login.Client?.LoggedIn ?? false))
294-
{
295-
var userClient = await SaveUser(login.Client);
296-
var user = userClient.User;
297-
298-
if (Appsetting.Instance.Clients.Count == 1)
299-
{
300-
SetCurrentClient(Appsetting.Instance.Clients[0]);
301-
}
290+
var client = login.Client;
291+
client.SetLanguage(Language.Schinese);
302292

303-
AddUserPanel(userClient);
293+
var account = await client.GetAccountNameAsync();
304294

305-
return userClient;
306-
}
295+
var players = await SteamApi.QueryPlayerSummariesAsync(null, client.WebApiToken, new[] { client.SteamId });
296+
var player = players.Body?.Players?.FirstOrDefault();
307297

308-
return null;
309-
}
298+
var localUser = Appsetting.Instance.Manifest.GetSteamUser(client.SteamId);
310299

311-
private async Task<UserClient> SaveUser(SteamCommunityClient client)
312-
{
313-
if (client?.LoggedIn ?? false)
300+
var user = new User
314301
{
315-
var localUser = Appsetting.Instance.Manifest.GetSteamUser(client.SteamId);
316-
317-
client.SetLanguage(Language.Schinese);
302+
Account = !string.IsNullOrWhiteSpace(account) ? account : localUser?.Account,
318303

319-
var players = await SteamApi.QueryPlayerSummariesAsync(null, client.WebApiToken, new[] { client.SteamId });
320-
var player = players.Body?.Players?.FirstOrDefault();
304+
SteamId = client.SteamId,
305+
RefreshToken = client.RefreshToken,
321306

322-
string account = await client.GetAccountNameAsync();
323-
var user = new User
324-
{
325-
Account = !string.IsNullOrWhiteSpace(account) ? account : localUser?.Account,
326-
327-
SteamId = client.SteamId,
328-
RefreshToken = client.RefreshToken,
329-
330-
NickName = player?.SteamName ?? localUser?.NickName ?? client.SteamId,
331-
Avatar = player?.AvatarFull ?? localUser?.Avatar ?? "",
332-
333-
Setting = localUser?.Setting ?? new Model.UserSetting()
334-
};
335-
336-
UserClient userClient = new UserClient(user, client, true);
307+
NickName = player?.SteamName ?? localUser?.NickName ?? client.SteamId,
308+
Avatar = player?.AvatarFull ?? localUser?.Avatar ?? "",
337309

338-
Appsetting.Instance.Manifest.SaveSteamUser(client.SteamId, user);
310+
Setting = localUser?.Setting ?? new Model.UserSetting()
311+
};
312+
UserClient userClient = new UserClient(user, client, true);
339313

340-
Appsetting.Instance.Clients.RemoveAll(c => c.User.SteamId == user.SteamId);
341-
Appsetting.Instance.Clients.Add(userClient);
342-
return userClient;
314+
Appsetting.Instance.Manifest.SaveSteamUser(client.SteamId, user);
315+
Appsetting.Instance.Clients.RemoveAll(c => c.User.SteamId == user.SteamId);
316+
Appsetting.Instance.Clients.Add(userClient);
343317

344-
}
345-
return null;
346-
}
318+
AddUserPanel(userClient);
347319

348-
private async Task SwitchUser(UserClient userClient)
349-
{
350-
try
320+
if (Appsetting.Instance.Clients.Count == 1 || currentClient.User.SteamId == userClient.User.SteamId)
351321
{
352-
if (!userClient.Client.LoggedIn)
353-
{
354-
if (!await userClient.LoginAsync())
355-
{
356-
userClient = await Login(true, userClient.GetAccount()) ?? userClient;
357-
}
358-
}
359-
360322
SetCurrentClient(userClient);
361323
}
362-
catch (Exception ex)
363-
{
364-
MessageBox.Show($"切换用户失败{Environment.NewLine}{ex.Message}", "提示", MessageBoxButtons.OK, MessageBoxIcon.Error);
365-
}
324+
return userClient;
366325
}
367326

368-
private void SetCurrentClient(UserClient userClient, bool reload = false)
327+
private void SetCurrentClient(UserClient userClient)
369328
{
370-
if (!reload)
329+
try
371330
{
372331
if (userClient?.User?.SteamId == currentClient?.User?.SteamId && userClient.Client.LoggedIn == currentClient?.Client.LoggedIn)
373332
{
374333
return;
375334
}
376-
}
377335

378-
usersPanel.SetChecked(userClient, true);
336+
usersPanel.SetChecked(userClient, true);
379337

380-
UserName.Text = userClient?.User == null ? "---" : $"{userClient.GetAccount()} [{userClient.User.NickName}]";
381-
SteamId.Text = userClient?.User == null ? "---" : $"{userClient.User.SteamId}";
338+
UserName.Text = userClient?.User == null ? "---" : $"{userClient.GetAccount()} [{userClient.User.NickName}]";
339+
SteamId.Text = userClient?.User == null ? "---" : $"{userClient.User.SteamId}";
382340

383-
UserImg.Image = Properties.Resources.userimg;
384-
if (!string.IsNullOrWhiteSpace(userClient?.User?.Avatar))
385-
{
386-
UserImg.LoadAsync(userClient.User.Avatar);
387-
}
341+
UserImg.Image = Properties.Resources.userimg;
342+
if (!string.IsNullOrWhiteSpace(userClient?.User?.Avatar))
343+
{
344+
UserImg.LoadAsync(userClient.User.Avatar);
345+
}
388346

389-
Balance.Text = "---";
390-
DelayedBalance.Text = "---";
391-
OfferCountLabel.Text = "---";
392-
ConfirmationCountLable.Text = "---";
347+
Balance.Text = "---";
348+
DelayedBalance.Text = "---";
349+
OfferCountLabel.Text = "---";
350+
ConfirmationCountLable.Text = "---";
393351

394-
currentClient = userClient;
395-
Appsetting.Instance.AppSetting.Entry.CurrentUser = currentClient.User.SteamId;
396-
Appsetting.Instance.AppSetting.Save();
352+
currentClient = userClient;
353+
Appsetting.Instance.AppSetting.Entry.CurrentUser = currentClient?.User?.SteamId;
354+
Appsetting.Instance.AppSetting.Save();
355+
}
356+
catch (Exception ex)
357+
{
358+
MessageBox.Show($"切换用户失败{Environment.NewLine}{ex.Message}", "提示", MessageBoxButtons.OK, MessageBoxIcon.Error);
359+
}
397360
}
398361

399362
private SteamUserPanel AddUserPanel(UserClient userClient)
@@ -415,7 +378,7 @@ private SteamUserPanel AddUserPanel(UserClient userClient)
415378

416379
if (client.User.SteamId == currentClient?.User?.SteamId)
417380
{
418-
SetCurrentClient(client, true);
381+
SetCurrentClient(client);
419382
}
420383
};
421384

SteamAuthenticator/Handler/BUFFUserPanelHandler.cs

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -105,6 +105,7 @@ private BuffUserPanel AddUserPanel(BuffClient buffClient)
105105
BuffUserPanel panel = UsersPanel.AddItemPanel(true, buffClient);
106106

107107
panel.ItemIcon.ContextMenuStrip = UserMenu;
108+
panel.ItemIcon.MouseClick += user_MouseClick;
108109

109110
panel.Client
110111
.WithStartLogin(() =>
@@ -118,5 +119,23 @@ private BuffUserPanel AddUserPanel(BuffClient buffClient)
118119

119120
return panel;
120121
}
122+
123+
private async void user_MouseClick(object sender, MouseEventArgs e)
124+
{
125+
if (e.Button != MouseButtons.Left)
126+
{
127+
return;
128+
}
129+
130+
var control = sender as Control;
131+
var userPanel = control.Parent as BuffUserPanel;
132+
var userClient = userPanel.Client;
133+
if (userClient.LoggedIn)
134+
{
135+
return;
136+
}
137+
138+
await ReloginInternal(userPanel, userClient);
139+
}
121140
}
122141
}

SteamAuthenticator/Handler/C5UserPanelHandler.cs

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -100,6 +100,7 @@ private C5UserPanel AddUserPanel(C5Client client)
100100
};
101101

102102
panel.ItemIcon.ContextMenuStrip = userMenu;
103+
panel.ItemIcon.MouseClick += user_MouseClick;
103104

104105
panel.Client
105106
.WithStartLogin(() =>
@@ -140,12 +141,17 @@ private async Task<C5UserPanel> Login(string tips)
140141

141142
var userInfo = userResponse.Body.data;
142143

144+
var localUser = Appsetting.Instance.Manifest.GetC5User(userInfo.uid);
145+
143146
var user = new C5User
144147
{
145148
UserId = userInfo.uid,
146149
Nickname = userInfo.nickname,
147150
Avatar = userInfo.avatar,
148151
SteamIds = userInfo.steamList.Select(c => c.steamId)?.ToList() ?? new List<string>(),
152+
153+
Setting = localUser?.Setting ?? new C5UserSetting(),
154+
149155
AppKey = appkey
150156
};
151157
var client = new C5Client(user, true)
@@ -216,5 +222,23 @@ private void AutoDeliver(object _)
216222
autoDeliverTimer?.Change(autoDeliverTimerMinPeriod, autoDeliverTimerMinPeriod * 3);
217223
}
218224
}
225+
226+
private async void user_MouseClick(object sender, MouseEventArgs e)
227+
{
228+
if (e.Button != MouseButtons.Left)
229+
{
230+
return;
231+
}
232+
233+
var control = sender as Control;
234+
var userPanel = control.Parent as C5UserPanel;
235+
var userClient = userPanel.Client;
236+
if (userClient.LoggedIn)
237+
{
238+
return;
239+
}
240+
241+
await ReloginInternal(userPanel, userClient);
242+
}
219243
}
220244
}

SteamAuthenticator/Handler/ECOUserPanelHandler.cs

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -99,6 +99,8 @@ private async Task<EcoUserPanel> EcoLogin(string tips)
9999
var steamUserResponse = await EcoApi.QuerySteamUserAsync(authResponse.Token);
100100
var steamUserData = steamUserResponse?.StatusData?.ResultData;
101101

102+
var localUser = Appsetting.Instance.Manifest.GetEcoUser(authResponse.UserId);
103+
102104
var user = new EcoUser
103105
{
104106
UserId = authResponse.UserId,
@@ -107,6 +109,8 @@ private async Task<EcoUserPanel> EcoLogin(string tips)
107109
SteamIds = steamUserData?.Select(c => c.SteamId).ToList() ?? new List<string>(),
108110
ClientId = authResponse.ClientId,
109111

112+
Setting = localUser?.Setting ?? new EcoUserSetting(),
113+
110114
RefreshToken = authResponse.RefreshToken,
111115
RefreshTokenExpireTime = authResponse.RefreshTokenExpireDate
112116
};
@@ -136,6 +140,7 @@ private EcoUserPanel AddUserPanel(EcoClient client)
136140
};
137141

138142
panel.ItemIcon.ContextMenuStrip = userMenu;
143+
panel.ItemIcon.MouseClick += user_MouseClick;
139144

140145
panel.Client
141146
.WithStartLogin(() =>
@@ -207,5 +212,23 @@ private void AutoDeliver(object _)
207212
autoDeliverTimer?.Change(autoDeliverTimerMinPeriod, autoDeliverTimerMinPeriod * 3);
208213
}
209214
}
215+
216+
private async void user_MouseClick(object sender, MouseEventArgs e)
217+
{
218+
if (e.Button != MouseButtons.Left)
219+
{
220+
return;
221+
}
222+
223+
var control = sender as Control;
224+
var userPanel = control.Parent as EcoUserPanel;
225+
var userClient = userPanel.Client;
226+
if (userClient.LoggedIn)
227+
{
228+
return;
229+
}
230+
231+
await ReloginInternal(userPanel, userClient);
232+
}
210233
}
211234
}

SteamAuthenticator/Handler/YouPinUserPanelHandler.cs

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -77,6 +77,7 @@ private YouPinUserPanel AddUserPanel(YouPinClient client)
7777
YouPinUserPanel panel = UsersPanel.AddItemPanel(true, client);
7878

7979
panel.ItemIcon.ContextMenuStrip = UserMenu;
80+
panel.ItemIcon.MouseClick += user_MouseClick;
8081

8182
panel.Client
8283
.WithStartLogin(() =>
@@ -117,5 +118,23 @@ private YouPinUserPanel YouPinLogin(string tips)
117118

118119
return AddUserPanel(client);
119120
}
121+
122+
private async void user_MouseClick(object sender, MouseEventArgs e)
123+
{
124+
if (e.Button != MouseButtons.Left)
125+
{
126+
return;
127+
}
128+
129+
var control = sender as Control;
130+
var userPanel = control.Parent as YouPinUserPanel;
131+
var userClient = userPanel.Client;
132+
if (userClient.LoggedIn)
133+
{
134+
return;
135+
}
136+
137+
await ReloginInternal(userPanel, userClient);
138+
}
120139
}
121140
}

0 commit comments

Comments
 (0)