Skip to content

Commit 573c3e4

Browse files
committed
[修改]1. 修改接口标记为过期的处理
1 parent 0ddbef5 commit 573c3e4

1 file changed

Lines changed: 72 additions & 72 deletions

File tree

Lines changed: 72 additions & 72 deletions
Original file line numberDiff line numberDiff line change
@@ -1,73 +1,73 @@
1-
// GameFrameX 组织下的以及组织衍生的项目的版权、商标、专利和其他相关权利均受相应法律法规的保护。使用本项目应遵守相关法律法规和许可证的要求。
2-
//
3-
// 本项目主要遵循 MIT 许可证和 Apache 许可证(版本 2.0)进行分发和使用。许可证位于源代码树根目录中的 LICENSE 文件。
4-
//
5-
// 不得利用本项目从事危害国家安全、扰乱社会秩序、侵犯他人合法权益等法律法规禁止的活动!任何基于本项目二次开发而产生的一切法律纠纷和责任,我们不承担任何责任!
6-
7-
using GameFrameX.Apps.Common.Event;
8-
using GameFrameX.Apps.Common.Session;
9-
using GameFrameX.Apps.Player.Player.Component;
10-
using GameFrameX.Apps.Player.Player.Entity;
11-
using GameFrameX.Core.Abstractions.Events;
12-
using GameFrameX.Hotfix.Logic.Server.Server;
13-
14-
namespace GameFrameX.Hotfix.Logic.Role.Login;
15-
16-
public class PlayerComponentAgent : StateComponentAgent<PlayerComponent, PlayerState>
17-
{
18-
public async Task OnLogout()
19-
{
20-
//移除在线玩家
21-
var serverComp = await ActorManager.GetComponentAgent<ServerComponentAgent>();
22-
await serverComp.RemoveOnlineRole(ActorId);
23-
//下线后会被自动回收
24-
SetAutoRecycle(true);
25-
QuartzTimer.UnSchedule(ScheduleIdSet);
26-
}
27-
28-
/// <summary>
29-
/// 使用角色ID登录
30-
/// </summary>
31-
/// <param name="workChannel"></param>
32-
/// <param name="reqLogin"></param>
33-
public async Task OnPlayerLogin(INetWorkChannel workChannel, ReqPlayerLogin reqLogin)
34-
{
35-
var playerState = await OwnerComponent.OnPlayerLogin(reqLogin);
36-
if (playerState == null)
37-
{
38-
//角色找不到?
39-
return;
40-
}
41-
42-
// 更新连接会话数据
43-
SessionManager.UpdateSession(workChannel.GameAppSession.SessionID, playerState.Id,playerState.Id.ToString());
44-
var respPlayerLogin = new RespPlayerLogin
45-
{
46-
UniqueId = reqLogin.UniqueId,
47-
Code = playerState.State,
48-
CreateTime = playerState.CreateTime,
49-
PlayerInfo = new PlayerInfo
50-
{
51-
Id = playerState.Id,
52-
Name = playerState.Name,
53-
Level = playerState.Level,
54-
State = playerState.State,
55-
Avatar = playerState.Avatar,
56-
},
57-
};
58-
await workChannel.WriteAsync(respPlayerLogin);
59-
60-
//加入在线玩家
61-
var serverComp = await ActorManager.GetComponentAgent<ServerComponentAgent>();
62-
await serverComp.AddOnlineRole(ActorId);
63-
}
64-
65-
[Event(EventId.SessionRemove)]
66-
private class EL : EventListener<PlayerComponentAgent>
67-
{
68-
protected override Task HandleEvent(PlayerComponentAgent agent, Event evt)
69-
{
70-
return agent.OnLogout();
71-
}
72-
}
1+
// GameFrameX 组织下的以及组织衍生的项目的版权、商标、专利和其他相关权利均受相应法律法规的保护。使用本项目应遵守相关法律法规和许可证的要求。
2+
//
3+
// 本项目主要遵循 MIT 许可证和 Apache 许可证(版本 2.0)进行分发和使用。许可证位于源代码树根目录中的 LICENSE 文件。
4+
//
5+
// 不得利用本项目从事危害国家安全、扰乱社会秩序、侵犯他人合法权益等法律法规禁止的活动!任何基于本项目二次开发而产生的一切法律纠纷和责任,我们不承担任何责任!
6+
7+
using GameFrameX.Apps.Common.Event;
8+
using GameFrameX.Apps.Common.Session;
9+
using GameFrameX.Apps.Player.Player.Component;
10+
using GameFrameX.Apps.Player.Player.Entity;
11+
using GameFrameX.Core.Abstractions.Events;
12+
using GameFrameX.Hotfix.Logic.Server.Server;
13+
14+
namespace GameFrameX.Hotfix.Logic.Role.Login;
15+
16+
public class PlayerComponentAgent : StateComponentAgent<PlayerComponent, PlayerState>
17+
{
18+
public async Task OnLogout()
19+
{
20+
//移除在线玩家
21+
var serverComp = await ActorManager.GetComponentAgent<ServerComponentAgent>();
22+
await serverComp.RemoveOnlineRole(ActorId);
23+
//下线后会被自动回收
24+
SetAutoRecycle(true);
25+
QuartzTimer.Remove(ScheduleIdSet);
26+
}
27+
28+
/// <summary>
29+
/// 使用角色ID登录
30+
/// </summary>
31+
/// <param name="workChannel"></param>
32+
/// <param name="reqLogin"></param>
33+
public async Task OnPlayerLogin(INetWorkChannel workChannel, ReqPlayerLogin reqLogin)
34+
{
35+
var playerState = await OwnerComponent.OnPlayerLogin(reqLogin);
36+
if (playerState == null)
37+
{
38+
//角色找不到?
39+
return;
40+
}
41+
42+
// 更新连接会话数据
43+
SessionManager.UpdateSession(workChannel.GameAppSession.SessionID, playerState.Id,playerState.Id.ToString());
44+
var respPlayerLogin = new RespPlayerLogin
45+
{
46+
UniqueId = reqLogin.UniqueId,
47+
Code = playerState.State,
48+
CreateTime = playerState.CreateTime,
49+
PlayerInfo = new PlayerInfo
50+
{
51+
Id = playerState.Id,
52+
Name = playerState.Name,
53+
Level = playerState.Level,
54+
State = playerState.State,
55+
Avatar = playerState.Avatar,
56+
},
57+
};
58+
await workChannel.WriteAsync(respPlayerLogin);
59+
60+
//加入在线玩家
61+
var serverComp = await ActorManager.GetComponentAgent<ServerComponentAgent>();
62+
await serverComp.AddOnlineRole(ActorId);
63+
}
64+
65+
[Event(EventId.SessionRemove)]
66+
private class EL : EventListener<PlayerComponentAgent>
67+
{
68+
protected override Task HandleEvent(PlayerComponentAgent agent, Event evt)
69+
{
70+
return agent.OnLogout();
71+
}
72+
}
7373
}

0 commit comments

Comments
 (0)