Skip to content

Commit 54d9560

Browse files
committed
fix(friend): 跨进程好友操作传递源玩家ID
- 内部协议新增 SourcePlayerId 字段(ReqInnerFriendByAdd/ReqInnerFriendByDelete) - 外部方法设置 SourcePlayerId 为当前 ActorId - 内部方法优先使用 SourcePlayerId(跨服场景),降级为 ActorId(本服场景) - 修复 Game 进程转发好友请求到 Social 进程时发起者身份丢失的问题
1 parent edfb08f commit 54d9560

2 files changed

Lines changed: 26 additions & 6 deletions

File tree

GameFrameX.Hotfix/Logic/Player/Friend/FriendComponentAgent.cs

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -88,6 +88,7 @@ public async Task OnAddFriend(INetWorkChannel netWorkChannel, ReqFriendByAdd req
8888
{
8989
var reqInnerAddFriend = MessageObjectPoolHelper.Get<ReqInnerFriendByAdd>();
9090
reqInnerAddFriend.PlayerId = request.PlayerId;
91+
reqInnerAddFriend.SourcePlayerId = ActorId;
9192
if (string.Equals(GlobalSettings.CurrentSetting?.ServerType, GameServerConst.Social.Name, StringComparison.OrdinalIgnoreCase))
9293
{
9394
var innerResponse = new RespInnerFriendByAdd();
@@ -139,6 +140,7 @@ public async Task OnDeleteFriend(INetWorkChannel netWorkChannel, ReqDeleteFriend
139140
{
140141
var reqInnerDeleteFriend = MessageObjectPoolHelper.Get<ReqInnerFriendByDelete>();
141142
reqInnerDeleteFriend.PlayerId = request.PlayerId;
143+
reqInnerDeleteFriend.SourcePlayerId = ActorId;
142144
if (string.Equals(GlobalSettings.CurrentSetting?.ServerType, GameServerConst.Social.Name, StringComparison.OrdinalIgnoreCase))
143145
{
144146
var innerResponse = new RespInnerFriendByDelete();
@@ -185,7 +187,8 @@ public async Task OnDeleteFriend(INetWorkChannel netWorkChannel, ReqDeleteFriend
185187
/// </summary>
186188
public async Task OnInnerAddFriend(INetWorkChannel netWorkChannel, ReqInnerFriendByAdd request, RespInnerFriendByAdd response)
187189
{
188-
var ownerPlayerId = ActorId;
190+
// 优先使用请求中的 SourcePlayerId(跨服场景),否则降级为 ActorId(本服场景)
191+
var ownerPlayerId = request.SourcePlayerId > 0 ? request.SourcePlayerId : ActorId;
189192
var targetPlayerId = request.PlayerId;
190193

191194
// 参数校验
@@ -287,7 +290,8 @@ public async Task OnInnerFriendList(INetWorkChannel netWorkChannel, ReqInnerFrie
287290
/// </summary>
288291
public async Task OnInnerDeleteFriend(INetWorkChannel netWorkChannel, ReqInnerFriendByDelete request, RespInnerFriendByDelete response)
289292
{
290-
var ownerPlayerId = ActorId;
293+
// 优先使用请求中的 SourcePlayerId(跨服场景),否则降级为 ActorId(本服场景)
294+
var ownerPlayerId = request.SourcePlayerId > 0 ? request.SourcePlayerId : ActorId;
291295
var targetPlayerId = request.PlayerId;
292296

293297
// 参数校验

GameFrameX.Proto/Proto/_-120_InnerSocial_s.cs

Lines changed: 20 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -46,15 +46,23 @@ namespace GameFrameX.Proto.Proto
4646
public sealed class ReqInnerFriendByAdd : MessageObject, IRequestMessage
4747
{
4848
/// <summary>
49-
/// 玩家ID
49+
/// 目标玩家ID
5050
/// </summary>
5151
[ProtoMember(1)]
52-
[System.ComponentModel.Description("玩家ID")]
52+
[System.ComponentModel.Description("目标玩家ID")]
5353
public long PlayerId { get; set; }
5454

55+
/// <summary>
56+
/// 源玩家ID(发起好友请求的玩家ID)
57+
/// </summary>
58+
[ProtoMember(2)]
59+
[System.ComponentModel.Description("源玩家ID")]
60+
public long SourcePlayerId { get; set; }
61+
5562
public override void Clear()
5663
{
5764
PlayerId = default;
65+
SourcePlayerId = default;
5866
}
5967
}
6068

@@ -118,15 +126,23 @@ public sealed class InnerFriendInfo
118126
public sealed class ReqInnerFriendByDelete : MessageObject, IRequestMessage
119127
{
120128
/// <summary>
121-
/// 玩家ID
129+
/// 目标玩家ID(被删除的好友ID)
122130
/// </summary>
123131
[ProtoMember(1)]
124-
[System.ComponentModel.Description("玩家ID")]
132+
[System.ComponentModel.Description("目标玩家ID")]
125133
public long PlayerId { get; set; }
126134

135+
/// <summary>
136+
/// 源玩家ID(发起删除请求的玩家ID)
137+
/// </summary>
138+
[ProtoMember(2)]
139+
[System.ComponentModel.Description("源玩家ID")]
140+
public long SourcePlayerId { get; set; }
141+
127142
public override void Clear()
128143
{
129144
PlayerId = default;
145+
SourcePlayerId = default;
130146
}
131147
}
132148

0 commit comments

Comments
 (0)