From 2ae819376f35c9e7cd7a5276bf12df9784efb139 Mon Sep 17 00:00:00 2001 From: hahwu <31872165+hahwu@users.noreply.github.com> Date: Thu, 5 Mar 2026 11:02:25 +0800 Subject: [PATCH] =?UTF-8?q?=E5=8D=95=E6=AC=A1session=E5=86=85=E9=87=8D?= =?UTF-8?q?=E5=A4=8D=E6=B7=BB=E5=8A=A0=E5=90=8C=E4=B8=80=E5=A5=BD=E5=8F=8B?= =?UTF-8?q?=E4=BC=9A=E6=9C=89=E6=8F=90=E7=A4=BA=EF=BC=8C=E9=87=8D=E6=96=B0?= =?UTF-8?q?=E7=99=BB=E9=99=86=E5=90=8E=E6=B7=BB=E5=8A=A0=E7=9B=B8=E5=90=8C?= =?UTF-8?q?=E5=A5=BD=E5=8F=8B=E5=8D=B4=E6=8F=90=E7=A4=BA=E5=8F=91=E9=80=81?= =?UTF-8?q?=E6=88=90=E5=8A=9F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/server/game/player_back.go | 6 +++++- src/server/game/req_func_friend.go | 3 ++- src/server/test/friend_test.go | 15 +++++++++++++++ 3 files changed, 22 insertions(+), 2 deletions(-) diff --git a/src/server/game/player_back.go b/src/server/game/player_back.go index 52bc4d53..357bb430 100644 --- a/src/server/game/player_back.go +++ b/src/server/game/player_back.go @@ -332,8 +332,12 @@ func (p *Player) FriendListBackData() { fl = append(fl, ps) } } + now := GoUtil.Now() ReqFriendList := make([]int64, 0, len(FriendMod.SendApply)) - for k := range FriendMod.SendApply { + for k, v := range FriendMod.SendApply { + if now-v > oneday { + continue + } ReqFriendList = append(ReqFriendList, int64(k)) } p.PushClientRes(&proto.ResFriendList{ diff --git a/src/server/game/req_func_friend.go b/src/server/game/req_func_friend.go index a62d3e41..349f4972 100644 --- a/src/server/game/req_func_friend.go +++ b/src/server/game/req_func_friend.go @@ -133,7 +133,7 @@ func ReqApplyFriend(player *Player, buf []byte) error { } // 对于任何玩家而言,向自己在24小时内已从任意途径发送过好友申请的玩家再次发送好友申请时,该次申请不会被发出 sendApplyTime := FriendMod.GetSendApplyTime(Uid) - if sendApplyTime != 0 && GoUtil.Now()-sendApplyTime < 86400 { + if sendApplyTime != 0 && GoUtil.Now()-sendApplyTime < oneday { player.PushClientRes(&msg.ResApplyFriend{ Code: msg.RES_CODE_FAIL, Uid: req.Uid, @@ -141,6 +141,7 @@ func ReqApplyFriend(player *Player, buf []byte) error { }) return fmt.Errorf("already applied") } + FriendMod.AddSendApply(Uid) now := GoUtil.Now() if req.Type == 1 { Items, err := FriendMod.GetSponsorReward() diff --git a/src/server/test/friend_test.go b/src/server/test/friend_test.go index fbcd3374..6bd531bc 100644 --- a/src/server/test/friend_test.go +++ b/src/server/test/friend_test.go @@ -3,7 +3,10 @@ package test import ( "fmt" "server/game" + "server/msg" "testing" + + "google.golang.org/protobuf/proto" ) func TestFriendInit(t *testing.T) { @@ -31,3 +34,15 @@ func TestFriendRecommendList(t *testing.T) { l1 := game.GetRecommendPlayer(p1, 3) fmt.Printf("Recommend List: %v\n", l1) } + +func TestReqApplyFriend(t *testing.T) { + p1 := new(game.Player) + p1.InitPlayer("3625212") + req := &msg.ReqApplyFriend{ + Uid: 100002, + Type: 0, + } + buf, _ := proto.Marshal(req) + game.ReqApplyFriend(p1, buf) + p1.FriendListBackData() +}