给信息增加过期时间

This commit is contained in:
hahwu 2026-02-25 11:30:18 +08:00
parent f9d33219f5
commit 468e65e8da
5 changed files with 67 additions and 31 deletions

View File

@ -110,6 +110,7 @@ func (c *ChampshipMgr) NotifyAll() (interface{}, error) {
NotifyAllPlayerMsg(&msg.Msg{
Type: msg.HANDLE_TYPE_CHAMPSHIP_NOTIFY,
HandleType: msg.HANDLE_MOD_PLAYER_MSG,
End: GoUtil.Now() + onehour,
})
return nil, nil
}
@ -234,11 +235,12 @@ func (c *ChampshipMgr) ai() (interface{}, error) {
}
ChampshipData.Rank[k] = v
}
now := GoUtil.Now()
// 在锁外通知玩家,避免在持锁时启动 goroutine 访问可能被并发修改的数据
for uid := range uids {
go NotifyPlayer(uid, &msg.Msg{
Type: msg.HANDLE_TYPE_CHAMPSHIP_NOTIFY,
End: now + onehour,
})
}
@ -461,6 +463,7 @@ func (c *ChampshipMgr) group() (interface{}, error) {
for _, uid := range notifyList {
go NotifyPlayer(uid, &msg.Msg{
Type: msg.HANDLE_TYPE_CHAMPSHIP_NOTIFY,
End: GoUtil.Now() + onehour,
})
}
return nil, nil
@ -552,6 +555,7 @@ func (c *ChampshipMgr) inRank(m *msg.Msg) (interface{}, error) {
for _, uid := range notifyList {
go NotifyPlayer(uid, &msg.Msg{
Type: msg.HANDLE_TYPE_CHAMPSHIP_NOTIFY,
End: GoUtil.Now() + onehour,
})
}
return nil, nil

View File

@ -13,6 +13,12 @@ const (
CHESS_MODULE = "chess"
)
const (
onehour = 3600
oneday = 24 * onehour
sevendays = 7 * oneday
)
// 解析参数
func ParseArgs(args []interface{}) (gate.Agent, *Player, []byte) {
a := args[0].(gate.Agent)

View File

@ -514,7 +514,7 @@ func (p *Player) handle(m *msg.Msg) error {
case msg.HANDLE_TYPE_FRIEND_GREETING_REPLY:
FriendMod := p.PlayMod.getFriendMod()
if v, ok := m.Extra.(friend.ReplyInfo); ok {
FriendMod.AddReplyInfo(v.Uid, v.Type, v.Param, GoUtil.Now()+24*3600, nil)
FriendMod.AddReplyInfo(v.Uid, v.Type, v.Param, GoUtil.Now()+oneday, nil)
p.FriendLogBackData()
}
case msg.HANDLE_TYPE_FRIEND_SPONSOER:
@ -716,6 +716,8 @@ func NotifyChampshipResult(Uid, Rank int) {
if PlayerSimpleData == nil {
return
}
now := GoUtil.Now()
serveropenday := GoUtil.GetServerOpenDay()
for _, v := range PlayerSimpleData.Friend {
if CheckPlayerLose(v) {
continue
@ -724,8 +726,9 @@ func NotifyChampshipResult(Uid, Rank int) {
Type: msg.HANDLE_TYPE_CHAMPSHIP_RESULT,
From: Uid,
To: v,
SendT: GoUtil.Now(),
Extra: []int{Rank, GoUtil.GetServerOpenDay()},
SendT: now,
End: now + sevendays,
Extra: []int{Rank, serveropenday},
})
}
}

View File

@ -1253,7 +1253,7 @@ func CheckPlayerLose(Uid int) bool {
return true
}
now := GoUtil.Now()
if now-FriendSimpleData.Loginout > 7*24*3600 {
if now-FriendSimpleData.Loginout > sevendays {
return true
}
return false

View File

@ -246,10 +246,12 @@ func RegHandbookAllReward(player *Player, buf []byte) error {
player.PushClientRes(&msg.ResHandbookAllReward{
Code: msg.RES_CODE_SUCCESS,
})
now := GoUtil.Now()
NotifyAllFriend(player, &MsqMod.Msg{
Type: MsqMod.HANDLE_TYPE_HANDBOOK_COLLECTION,
From: int(player.M_DwUin),
SendT: GoUtil.Now(),
SendT: now,
End: now + sevendays,
Extra: MsqMod.HandbookMsg{
Type: req.Type,
},
@ -1880,6 +1882,7 @@ func ReqApplyFriend(player *Player, buf []byte) error {
})
return fmt.Errorf("already applied")
}
now := GoUtil.Now()
if req.Type == 1 {
Items, err := FriendMod.GetSponsorReward()
if err != nil {
@ -1899,12 +1902,13 @@ func ReqApplyFriend(player *Player, buf []byte) error {
})
return err
}
player.AddLog(int(req.Uid), friend.LOG_TYPE_FRIEND_SPONSOR, "", GoUtil.Now())
player.AddLog(int(req.Uid), friend.LOG_TYPE_FRIEND_SPONSOR, "", now)
FriendMgrSend(&MsqMod.Msg{
Type: MsqMod.HANDLE_TYPE_FRIEND_SPONSOER,
From: int(player.M_DwUin),
To: Uid,
SendT: GoUtil.Now(),
SendT: now,
End: now + sevendays,
})
player.PushClientRes(BaseMod.BackData())
player.TeLog("friend_invite_reward", map[string]interface{}{
@ -1915,7 +1919,8 @@ func ReqApplyFriend(player *Player, buf []byte) error {
Type: MsqMod.HANDLE_TYPE_APPLY,
From: int(player.M_DwUin),
To: Uid,
SendT: GoUtil.Now(),
SendT: now,
End: now + sevendays,
}
FriendMgrSend(m)
player.PushClientRes(&msg.ResApplyFriend{
@ -2022,11 +2027,13 @@ func ReqRefuseFriend(player *Player, buf []byte) error {
Code: msg.RES_CODE_SUCCESS,
Uid: req.Uid,
})
now := GoUtil.Now()
m := &MsqMod.Msg{
Type: MsqMod.HANDLE_TYPE_REFUSE,
From: int(player.M_DwUin),
To: Uid,
SendT: GoUtil.Now(),
SendT: now,
End: now + 86400*7,
}
FriendMgrSend(m)
player.FriendApplyBackData()
@ -2069,13 +2076,6 @@ func ReqCardGive(player *Player, buf []byte) error {
})
return fmt.Errorf("card id empty")
}
// err = player.SubCard(CardId)
// if err != nil {
// player.SendErrClienRes(&msg.ResCardGive{
// Code: msg.RES_CODE_FAIL,
// Msg: err.Error(),
// })
// }
Id := GoUtil.CreateCardId(int(player.M_DwUin), 0, int(req.CardId))
for _, v := range req.Uid {
Uid := int(v)
@ -2203,11 +2203,13 @@ func ReqRefuseCardGive(player *Player, buf []byte) error {
player.TeLog("ReqRefuseCardGive", map[string]interface{}{
"card_id": CardInfo.CardId,
})
now := GoUtil.Now()
m := &MsqMod.Msg{
Type: MsqMod.HANDLE_TYPE_REG_CARD_REFUSE,
From: int(player.M_DwUin),
To: CardInfo.AUid,
SendT: GoUtil.Now(),
SendT: now,
End: now + 86400,
Extra: *CardInfo,
}
FriendMgrSend(m)
@ -3109,12 +3111,14 @@ func ReqFriendTLUpvote(player *Player, buf []byte) error {
})
return err
}
now := GoUtil.Now()
// 添加时间线
m := &MsqMod.Msg{
Type: MsqMod.HANDLE_TYPE_HANDBOOK_UPVOTE,
From: int(player.M_DwUin),
To: int(FUid),
SendT: GoUtil.Now(),
SendT: now,
End: now + sevendays,
}
FriendMod.AddActLog(friend.ACT_LOG_TYPE_VISIT_UPVOTE, "")
player.UpdateUserInfo()
@ -3304,11 +3308,13 @@ func ReqSelfInvited(player *Player, buf []byte) error {
if err != nil {
return err
}
now := GoUtil.Now()
FriendMgrSend(&MsqMod.Msg{
Type: MsqMod.HANDLE_TYPE_INVITE_FRIEND,
From: int(player.M_DwUin),
To: int(req.InviterId),
SendT: GoUtil.Now(),
SendT: now,
End: now + 86400,
})
player.PushClientRes(&msg.ResSelfInvited{
ResultCode: 1,
@ -3887,11 +3893,13 @@ func ReqPlayroomGame(player *Player, buf []byte) error {
})
return err
}
now := GoUtil.Now()
FriendMgrSend(&MsqMod.Msg{
From: int(player.M_DwUin),
To: Target,
Type: MsqMod.HANDLE_TYPE_PLAYROOM_GAME,
SendT: GoUtil.Now(),
SendT: now,
End: now + sevendays,
Extra: GameResult{
T: PlayroomMod.GetGameId(),
Emoji: int(req.EmojiId),
@ -3947,11 +3955,13 @@ func ReqPlayroomSelectReward(player *Player, buf []byte) error {
})
return fmt.Errorf("no game or target")
}
now := GoUtil.Now()
FriendMgrSend(&MsqMod.Msg{
From: int(player.M_DwUin),
To: Target,
Type: MsqMod.HANDLE_TYPE_PLAYROOM_LOSE,
SendT: GoUtil.Now(),
SendT: now,
End: now + sevendays,
Item: Items,
Extra: GameResult{
T: PlayroomMod.GetGameId(),
@ -4180,11 +4190,13 @@ func ReqPlayroomFlipReward(player *Player, buf []byte) error {
FriendMod.AddActLog(friend.ACT_LOG_TYPE_GET_VISIT_GAME_PRIZE, "")
player.UpdateUserInfo()
}
now := GoUtil.Now()
FriendMgrSend(&MsqMod.Msg{
From: int(player.M_DwUin),
To: Target,
Type: MsqMod.HANDLE_TYPE_PLAYROOM_LOSE,
SendT: GoUtil.Now(),
SendT: now,
End: now + sevendays,
Item: Items,
Extra: GameResult{
T: playroom.GAME_TYPE_FILP,
@ -4270,17 +4282,20 @@ func ReqPlayroomUpvote(player *Player, buf []byte) error {
Msg: err.Error(),
})
}
now := GoUtil.Now()
FriendMgrSend(&MsqMod.Msg{
From: int(player.M_DwUin),
To: int(req.Id),
Type: MsqMod.HANDLE_TYPE_PLAYROOM_UPVOTE,
SendT: GoUtil.Now(),
SendT: now,
End: now + sevendays,
})
FriendMgrSend(&MsqMod.Msg{
From: int(player.M_DwUin),
To: int(req.Id),
Type: MsqMod.HANDLE_TYPE_PLAYROOM_KISS,
SendT: GoUtil.Now(),
SendT: now,
End: now + sevendays,
})
player.QuestTrigger(&quest.Trigger{Label: quest.TRIGGER_LABEL_PLAYROOM_UPVOTE})
player.AddPlayroomUpvote(int(req.Id))
@ -4597,13 +4612,15 @@ func ReqFriendTreasureFilp(player *Player, buf []byte) error {
)
return err
}
now := GoUtil.Now()
if Uid != 0 && Items != nil {
FriendMgrSend(&MsqMod.Msg{
From: int(player.M_DwUin),
To: int(Uid),
Type: MsqMod.HANDLE_TYPE_TREASURE_RESULT,
Extra: Items[0].Num,
SendT: GoUtil.Now(),
SendT: now,
End: now + sevendays,
})
}
@ -4641,6 +4658,7 @@ func ReqFriendTreasureEnd(player *Player, buf []byte) error {
)
return err
}
now := GoUtil.Now()
for _, v := range FriendTreasureMod.List {
ItemNum := 0
if v.Status == 1 {
@ -4650,7 +4668,8 @@ func ReqFriendTreasureEnd(player *Player, buf []byte) error {
From: int(player.M_DwUin),
To: int(v.Uid),
Type: MsqMod.FRIEND_TREASURE_HANDLE,
SendT: GoUtil.Now(),
SendT: now,
End: now + sevendays,
Extra: []*item.Item{item.NewItem(item.ITEM_STAR_ID, ItemNum)},
})
}
@ -5772,6 +5791,7 @@ func ReqFriendReplyHandle(player *Player, buf []byte) error {
return fmt.Errorf("reply info not exist")
}
ErrType := msg.FRIEND_REPLY_HANDLE_ERR_TYPE_NONE
now := GoUtil.Now()
if req.Type == 1 && ReplyInfo.Uid > 10000 {
switch ReplyInfo.Type {
case friend.REPLY_TYPE_GREETING:
@ -5784,7 +5804,8 @@ func ReqFriendReplyHandle(player *Player, buf []byte) error {
From: int(player.M_DwUin),
To: int(ReplyInfo.Uid),
Type: MsqMod.HANDLE_TYPE_FRIEND_GREETING_REPLY,
SendT: GoUtil.Now(),
SendT: now,
End: now + sevendays,
Extra: ReplyData,
})
case friend.REPLY_TYPE_CATNIP: // 猫草大作战同意邀请
@ -5796,7 +5817,7 @@ func ReqFriendReplyHandle(player *Player, buf []byte) error {
err := player.SetCatnipPartner(GameId, ReplyInfo.Uid, activityInfo.EndT)
if err == nil {
CatnipMod := player.PlayMod.getCatnipMod()
ActivityId := player.GetActivityId(activity.ACT_TYPE_MINING)
ActivityId := player.GetActivityId(activity.ACT_TYPE_CATNIP)
UserList, _ := CatnipMod.Agree(GameId, ReplyInfo.Uid)
player.TeLog("catnip_agree", map[string]interface{}{
"Id": int(GameId),
@ -5809,7 +5830,8 @@ func ReqFriendReplyHandle(player *Player, buf []byte) error {
ActivityId: ActivityId,
GameId: int(GameId),
},
SendT: GoUtil.Now(),
SendT: now,
End: now + sevendays,
})
for _, v := range UserList {
@ -5821,7 +5843,8 @@ func ReqFriendReplyHandle(player *Player, buf []byte) error {
ActivityId: ActivityId,
GameId: int(GameId),
},
SendT: GoUtil.Now(),
SendT: now,
End: now + sevendays,
})
}
player.CatnipBackData()