架构优化
This commit is contained in:
parent
90e1115798
commit
bd96bfa29e
@ -56,7 +56,11 @@ func (p *Player) handle(m *msg.Msg) error {
|
|||||||
switch m.Type {
|
switch m.Type {
|
||||||
case msg.HANDLE_TYPE_APPLY: // 好友申请
|
case msg.HANDLE_TYPE_APPLY: // 好友申请
|
||||||
FriendMod := p.PlayMod.getFriendMod()
|
FriendMod := p.PlayMod.getFriendMod()
|
||||||
FriendMod.AddFriendApply(m.From)
|
ok := FriendMod.AddFriendApply(m.From)
|
||||||
|
// 已申请
|
||||||
|
if ok {
|
||||||
|
return nil
|
||||||
|
}
|
||||||
p.AddLog(m.From, friend.LOG_TYPE_FRIEND_APPLY, "", m.SendT)
|
p.AddLog(m.From, friend.LOG_TYPE_FRIEND_APPLY, "", m.SendT)
|
||||||
PlayerSimpleData := G_GameLogicPtr.GetResSimplePlayerByUid(m.From)
|
PlayerSimpleData := G_GameLogicPtr.GetResSimplePlayerByUid(m.From)
|
||||||
p.PushClientRes(&proto.ResFriendApplyNotify{
|
p.PushClientRes(&proto.ResFriendApplyNotify{
|
||||||
@ -73,10 +77,10 @@ func (p *Player) handle(m *msg.Msg) error {
|
|||||||
Type: friend.FRIEND_NOTIFY_AGREE,
|
Type: friend.FRIEND_NOTIFY_AGREE,
|
||||||
Time: int32(GoUtil.Now()),
|
Time: int32(GoUtil.Now()),
|
||||||
})
|
})
|
||||||
PlayroomMod := p.PlayMod.getPlayroomMod()
|
// PlayroomMod := p.PlayMod.getPlayroomMod()
|
||||||
BaseMod := p.PlayMod.getBaseMod()
|
// BaseMod := p.PlayMod.getBaseMod()
|
||||||
PlayroomMod.AddRoomPointAdd(BaseMod.GetLevel())
|
// PlayroomMod.AddRoomPointAdd(BaseMod.GetLevel())
|
||||||
p.PlayroomBackData()
|
// p.PlayroomBackData()
|
||||||
p.TeLog("friend_add", map[string]interface{}{
|
p.TeLog("friend_add", map[string]interface{}{
|
||||||
"player_id": m.From,
|
"player_id": m.From,
|
||||||
"add_type": "接受申请",
|
"add_type": "接受申请",
|
||||||
@ -128,10 +132,6 @@ func (p *Player) handle(m *msg.Msg) error {
|
|||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
FriendMod.AddFriend(m.From)
|
FriendMod.AddFriend(m.From)
|
||||||
PlayroomMod := p.PlayMod.getPlayroomMod()
|
|
||||||
BaseMod := p.PlayMod.getBaseMod()
|
|
||||||
PlayroomMod.AddRoomPointAdd(BaseMod.GetLevel())
|
|
||||||
p.PlayroomBackData()
|
|
||||||
p.TeLog("friend_add", map[string]interface{}{
|
p.TeLog("friend_add", map[string]interface{}{
|
||||||
"player_id": m.From,
|
"player_id": m.From,
|
||||||
"add_type": "发起申请",
|
"add_type": "发起申请",
|
||||||
|
|||||||
@ -372,7 +372,7 @@ func PlayerMsgHandler(data *msg.Msg) (interface{}, error) {
|
|||||||
if p == nil || p.stop {
|
if p == nil || p.stop {
|
||||||
return nil, nil
|
return nil, nil
|
||||||
}
|
}
|
||||||
p.Send(data.Clone())
|
go p.Send(data.Clone())
|
||||||
// 处理完后发送消费消息
|
// 处理完后发送消费消息
|
||||||
if data.HandleType == msg.HANDLE_MOD_PLAYER_MSG {
|
if data.HandleType == msg.HANDLE_MOD_PLAYER_MSG {
|
||||||
data.HandleType = msg.HANDLE_MOD_COMSUME_MSG
|
data.HandleType = msg.HANDLE_MOD_COMSUME_MSG
|
||||||
@ -862,6 +862,16 @@ func saveMessage(m *msg.Msg) error {
|
|||||||
messages := getMessgeUnsafe(int64(m.To))
|
messages := getMessgeUnsafe(int64(m.To))
|
||||||
messages.mu.Lock()
|
messages.mu.Lock()
|
||||||
defer messages.mu.Unlock()
|
defer messages.mu.Unlock()
|
||||||
|
for _, msgItem := range messages.Messages {
|
||||||
|
if msgItem == nil {
|
||||||
|
continue
|
||||||
|
}
|
||||||
|
if msgItem.UniKey == m.UniKey {
|
||||||
|
// 已存在相同消息,直接返回
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
}
|
||||||
|
// 添加消息
|
||||||
messages.Messages = append(messages.Messages, m)
|
messages.Messages = append(messages.Messages, m)
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|||||||
@ -330,8 +330,13 @@ func (f *FriendMod) GetSimpleFriendList() []int {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// 收到申请
|
// 收到申请
|
||||||
func (f *FriendMod) AddFriendApply(Uid int) {
|
func (f *FriendMod) AddFriendApply(Uid int) bool {
|
||||||
|
ok := f.CheckApply(Uid)
|
||||||
|
if ok {
|
||||||
|
return ok
|
||||||
|
}
|
||||||
f.ApplyList[Uid] = GoUtil.Now()
|
f.ApplyList[Uid] = GoUtil.Now()
|
||||||
|
return false
|
||||||
}
|
}
|
||||||
|
|
||||||
// 发送申请
|
// 发送申请
|
||||||
|
|||||||
@ -1049,35 +1049,6 @@ func (p *PlayroomMod) GetPetAir() map[int]*PetAirInfo {
|
|||||||
return p.NewPetAir
|
return p.NewPetAir
|
||||||
}
|
}
|
||||||
|
|
||||||
// RoomPoint Get Set
|
|
||||||
func (p *PlayroomMod) GetRoomPoint() int {
|
|
||||||
return p.RoomPoint
|
|
||||||
}
|
|
||||||
func (p *PlayroomMod) SetRoomPoint(Point int) {
|
|
||||||
p.RoomPoint = Point
|
|
||||||
}
|
|
||||||
func (p *PlayroomMod) AddRoomPointInvite(lv int) {
|
|
||||||
if lv < ROOM_POINT_UNLOCK_LV {
|
|
||||||
return
|
|
||||||
}
|
|
||||||
Point := playroomCfg.GetRoomPointInvite()
|
|
||||||
p.RoomPoint += Point
|
|
||||||
if p.RoomPoint < 0 {
|
|
||||||
p.RoomPoint = 0
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
func (p *PlayroomMod) AddRoomPointAdd(lv int) {
|
|
||||||
if lv < ROOM_POINT_UNLOCK_LV {
|
|
||||||
return
|
|
||||||
}
|
|
||||||
Point := playroomCfg.GetRoomPointAdd()
|
|
||||||
p.RoomPoint += Point
|
|
||||||
if p.RoomPoint < 0 {
|
|
||||||
p.RoomPoint = 0
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
func (p *PlayroomMod) BackDataTask() []*msg.DailyTask {
|
func (p *PlayroomMod) BackDataTask() []*msg.DailyTask {
|
||||||
DailyTask := make([]*msg.DailyTask, 0)
|
DailyTask := make([]*msg.DailyTask, 0)
|
||||||
for k, v := range p.DailyTask {
|
for k, v := range p.DailyTask {
|
||||||
|
|||||||
@ -1240,9 +1240,10 @@ func (p *Player) DispatcherHandle() {
|
|||||||
case msg := <-p.msgChan:
|
case msg := <-p.msgChan:
|
||||||
if msg != nil {
|
if msg != nil {
|
||||||
p.wg.Done()
|
p.wg.Done()
|
||||||
log.Debug("player %d recive msg %v", p.M_DwUin, msg)
|
now := time.Now()
|
||||||
// 直接在当前 goroutine 中处理,避免创建过多 goroutine
|
// 直接在当前 goroutine 中处理,避免创建过多 goroutine
|
||||||
p.HandleMsg(msg.Clone())
|
p.HandleMsg(msg.Clone())
|
||||||
|
log.Debug("player %d recive msg %v;handle time %v", p.M_DwUin, msg, time.Since(now))
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -1915,10 +1915,6 @@ func ReqApplyFriend(player *Player, buf []byte) error {
|
|||||||
Code: msg.RES_CODE_SUCCESS,
|
Code: msg.RES_CODE_SUCCESS,
|
||||||
Uid: req.Uid,
|
Uid: req.Uid,
|
||||||
})
|
})
|
||||||
PlayroomMod := player.PlayMod.getPlayroomMod()
|
|
||||||
BaseMod := player.PlayMod.getBaseMod()
|
|
||||||
PlayroomMod.AddRoomPointInvite(BaseMod.GetLevel())
|
|
||||||
player.PlayroomBackData()
|
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1959,10 +1955,6 @@ func ReqAgreeFriend(player *Player, buf []byte) error {
|
|||||||
player.AddLog(Uid, friend.LOG_TYPE_FRIEND_BECOME, "", GoUtil.Now())
|
player.AddLog(Uid, friend.LOG_TYPE_FRIEND_BECOME, "", GoUtil.Now())
|
||||||
player.FriendApplyBackData()
|
player.FriendApplyBackData()
|
||||||
player.FriendLogBackData()
|
player.FriendLogBackData()
|
||||||
PlayroomMod := player.PlayMod.getPlayroomMod()
|
|
||||||
BaseMod := player.PlayMod.getBaseMod()
|
|
||||||
PlayroomMod.AddRoomPointAdd(BaseMod.GetLevel())
|
|
||||||
player.PlayroomBackData()
|
|
||||||
player.PlayMod.save()
|
player.PlayMod.save()
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
@ -3374,10 +3366,6 @@ func ReqAutoAddInviteFriend(player *Player, buf []byte) error {
|
|||||||
Type: MsqMod.HANDLE_TYPE_INVITE_ADD_FRIEND,
|
Type: MsqMod.HANDLE_TYPE_INVITE_ADD_FRIEND,
|
||||||
SendT: GoUtil.Now(),
|
SendT: GoUtil.Now(),
|
||||||
})
|
})
|
||||||
PlayroomMod := player.PlayMod.getPlayroomMod()
|
|
||||||
BaseMod := player.PlayMod.getBaseMod()
|
|
||||||
PlayroomMod.AddRoomPointAdd(BaseMod.GetLevel())
|
|
||||||
player.PlayroomBackData()
|
|
||||||
player.TeLog("friend_add", map[string]interface{}{
|
player.TeLog("friend_add", map[string]interface{}{
|
||||||
"player_id": req.Id,
|
"player_id": req.Id,
|
||||||
"add_type": "邀请注册",
|
"add_type": "邀请注册",
|
||||||
@ -3418,10 +3406,6 @@ func ReqAutoAddInviteFriend2(player *Player, buf []byte) error {
|
|||||||
Type: MsqMod.HANDLE_TYPE_INVITE_ADD_FRIEND,
|
Type: MsqMod.HANDLE_TYPE_INVITE_ADD_FRIEND,
|
||||||
SendT: GoUtil.Now(),
|
SendT: GoUtil.Now(),
|
||||||
})
|
})
|
||||||
PlayroomMod := player.PlayMod.getPlayroomMod()
|
|
||||||
BaseMod := player.PlayMod.getBaseMod()
|
|
||||||
PlayroomMod.AddRoomPointAdd(BaseMod.GetLevel())
|
|
||||||
player.PlayroomBackData()
|
|
||||||
player.TeLog("friend_add", map[string]interface{}{
|
player.TeLog("friend_add", map[string]interface{}{
|
||||||
"player_id": req.Id,
|
"player_id": req.Id,
|
||||||
"add_type": "邀请注册",
|
"add_type": "邀请注册",
|
||||||
@ -5050,11 +5034,6 @@ func ReqAddNpc(player *Player, buf []byte) error {
|
|||||||
}
|
}
|
||||||
player.PlayMod.save()
|
player.PlayMod.save()
|
||||||
player.FriendListBackData()
|
player.FriendListBackData()
|
||||||
PlayroomMod := player.PlayMod.getPlayroomMod()
|
|
||||||
BaseMod := player.PlayMod.getBaseMod()
|
|
||||||
PlayroomMod.AddRoomPointInvite(BaseMod.GetLevel())
|
|
||||||
PlayroomMod.AddRoomPointAdd(BaseMod.GetLevel())
|
|
||||||
player.PlayroomBackData()
|
|
||||||
player.TeLog("add_npc", map[string]interface{}{
|
player.TeLog("add_npc", map[string]interface{}{
|
||||||
"NpcId": int(req.NpcId),
|
"NpcId": int(req.NpcId),
|
||||||
})
|
})
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user