卡牌类型断言bug修复
This commit is contained in:
parent
1a4015c176
commit
5f26f31e39
@ -59,6 +59,25 @@ func (p *Player) HandleMsg(m *msg.Msg) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func getCardInfoFromExtra(extra interface{}) (card.CardInfo, bool) {
|
||||||
|
switch v := extra.(type) {
|
||||||
|
case card.CardInfo:
|
||||||
|
return v, true
|
||||||
|
case *card.CardInfo:
|
||||||
|
if v == nil {
|
||||||
|
return card.CardInfo{}, false
|
||||||
|
}
|
||||||
|
return *v, true
|
||||||
|
case **card.CardInfo:
|
||||||
|
if v == nil || *v == nil {
|
||||||
|
return card.CardInfo{}, false
|
||||||
|
}
|
||||||
|
return **v, true
|
||||||
|
default:
|
||||||
|
return card.CardInfo{}, false
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
// 消息处理
|
// 消息处理
|
||||||
func (p *Player) handle(m *msg.Msg) error {
|
func (p *Player) handle(m *msg.Msg) error {
|
||||||
switch m.Type {
|
switch m.Type {
|
||||||
@ -116,7 +135,7 @@ func (p *Player) handle(m *msg.Msg) error {
|
|||||||
})
|
})
|
||||||
case msg.HANDLE_TYPE_REQ_CARD: // 卡牌申请
|
case msg.HANDLE_TYPE_REQ_CARD: // 卡牌申请
|
||||||
FriendMod := p.PlayMod.getFriendMod()
|
FriendMod := p.PlayMod.getFriendMod()
|
||||||
cardInfo, ok := m.Extra.(card.CardInfo)
|
cardInfo, ok := getCardInfoFromExtra(m.Extra)
|
||||||
if !ok {
|
if !ok {
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
@ -156,9 +175,9 @@ func (p *Player) handle(m *msg.Msg) error {
|
|||||||
p.PlayMod.save()
|
p.PlayMod.save()
|
||||||
p.PushClientRes(InviteMod.NotifySuccess())
|
p.PushClientRes(InviteMod.NotifySuccess())
|
||||||
case msg.HANDLE_TYPE_SEND_CARD: // B收到A赠送的卡牌
|
case msg.HANDLE_TYPE_SEND_CARD: // B收到A赠送的卡牌
|
||||||
cardInfo, ok := m.Extra.(card.CardInfo)
|
cardInfo, ok := getCardInfoFromExtra(m.Extra)
|
||||||
if !ok {
|
if !ok {
|
||||||
log.Error("Failed to cast m.Extra to card.CardInfo")
|
log.Error("handle type send card,Failed to cast m.Extra to card.CardInfo")
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
FriendMod := p.PlayMod.getFriendMod()
|
FriendMod := p.PlayMod.getFriendMod()
|
||||||
@ -171,9 +190,9 @@ func (p *Player) handle(m *msg.Msg) error {
|
|||||||
)
|
)
|
||||||
p.PlayMod.save()
|
p.PlayMod.save()
|
||||||
case msg.HANDLE_TYPE_EX_CARD_SELECT_TIMEOUT: // A收到B置换卡牌选择超时
|
case msg.HANDLE_TYPE_EX_CARD_SELECT_TIMEOUT: // A收到B置换卡牌选择超时
|
||||||
cardInfo, ok := m.Extra.(card.CardInfo)
|
cardInfo, ok := getCardInfoFromExtra(m.Extra)
|
||||||
if !ok {
|
if !ok {
|
||||||
log.Error("Failed to cast m.Extra to card.CardInfo")
|
log.Error("handle type ex card select timeout,Failed to cast m.Extra to card.CardInfo")
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
CardMod := p.PlayMod.getCardMod()
|
CardMod := p.PlayMod.getCardMod()
|
||||||
@ -182,9 +201,9 @@ func (p *Player) handle(m *msg.Msg) error {
|
|||||||
p.PushClientRes(CardMod.NotifyCard())
|
p.PushClientRes(CardMod.NotifyCard())
|
||||||
p.PushClientRes(CardMod.NotifyTimes())
|
p.PushClientRes(CardMod.NotifyTimes())
|
||||||
case msg.HANDLE_TYPE_EX_CARD_TIMEOUT: // B收到A同意置换卡牌超时
|
case msg.HANDLE_TYPE_EX_CARD_TIMEOUT: // B收到A同意置换卡牌超时
|
||||||
cardInfo, ok := m.Extra.(card.CardInfo)
|
cardInfo, ok := getCardInfoFromExtra(m.Extra)
|
||||||
if !ok {
|
if !ok {
|
||||||
log.Error("Failed to cast m.Extra to card.CardInfo")
|
log.Error("handle type ex card timeout,Failed to cast m.Extra to card.CardInfo")
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
CardMod := p.PlayMod.getCardMod()
|
CardMod := p.PlayMod.getCardMod()
|
||||||
@ -192,9 +211,9 @@ func (p *Player) handle(m *msg.Msg) error {
|
|||||||
p.PushClientRes(CardMod.NotifyCard())
|
p.PushClientRes(CardMod.NotifyCard())
|
||||||
p.PushClientRes(CardMod.NotifyTimes())
|
p.PushClientRes(CardMod.NotifyTimes())
|
||||||
case msg.HANDLE_TYPE_REG_CARD_FINISH, msg.HANDLE_TYPE_AGREE_CARD_FAIL: // B收到A的请求已结束
|
case msg.HANDLE_TYPE_REG_CARD_FINISH, msg.HANDLE_TYPE_AGREE_CARD_FAIL: // B收到A的请求已结束
|
||||||
cardInfo, ok := m.Extra.(card.CardInfo)
|
cardInfo, ok := getCardInfoFromExtra(m.Extra)
|
||||||
if !ok {
|
if !ok {
|
||||||
log.Error("Failed to cast m.Extra to card.CardInfo")
|
log.Error("handle type reg card finish or agree card fail,Failed to cast m.Extra to card.CardInfo")
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
FriendMod := p.PlayMod.getFriendMod()
|
FriendMod := p.PlayMod.getFriendMod()
|
||||||
@ -206,8 +225,9 @@ func (p *Player) handle(m *msg.Msg) error {
|
|||||||
)
|
)
|
||||||
p.PlayMod.save()
|
p.PlayMod.save()
|
||||||
case msg.HANDLE_TYPE_AGREE_CARD: // A收到B同意卡牌
|
case msg.HANDLE_TYPE_AGREE_CARD: // A收到B同意卡牌
|
||||||
cardInfo, ok := m.Extra.(card.CardInfo)
|
cardInfo, ok := getCardInfoFromExtra(m.Extra)
|
||||||
if !ok {
|
if !ok {
|
||||||
|
log.Error("handle type agree card,Failed to cast m.Extra to card.CardInfo")
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
CardMod := p.PlayMod.getCardMod()
|
CardMod := p.PlayMod.getCardMod()
|
||||||
@ -221,7 +241,7 @@ func (p *Player) handle(m *msg.Msg) error {
|
|||||||
}
|
}
|
||||||
for k, v := range otherUid { // 通知好友请求已结束
|
for k, v := range otherUid { // 通知好友请求已结束
|
||||||
v.Status = card.STATUS_CARD_GIVE_3
|
v.Status = card.STATUS_CARD_GIVE_3
|
||||||
FriendMgrSend(&msg.Msg{Type: msg.HANDLE_TYPE_REG_CARD_FINISH, From: k, Extra: &v})
|
FriendMgrSend(&msg.Msg{Type: msg.HANDLE_TYPE_REG_CARD_FINISH, From: k, Extra: *v})
|
||||||
CardMod.DelRequestCard(k)
|
CardMod.DelRequestCard(k)
|
||||||
}
|
}
|
||||||
p.PlayMod.save()
|
p.PlayMod.save()
|
||||||
@ -232,7 +252,7 @@ func (p *Player) handle(m *msg.Msg) error {
|
|||||||
)
|
)
|
||||||
p.PushClientRes(CardMod.NotifyTimes())
|
p.PushClientRes(CardMod.NotifyTimes())
|
||||||
case msg.HANDLE_TYPE_REG_CARD_REFUSE: // A收到B拒绝索要卡牌
|
case msg.HANDLE_TYPE_REG_CARD_REFUSE: // A收到B拒绝索要卡牌
|
||||||
cardInfo, ok := m.Extra.(card.CardInfo)
|
cardInfo, ok := getCardInfoFromExtra(m.Extra)
|
||||||
if !ok {
|
if !ok {
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
@ -244,7 +264,7 @@ func (p *Player) handle(m *msg.Msg) error {
|
|||||||
p.PushClientRes(CardMod.NotifyCard())
|
p.PushClientRes(CardMod.NotifyCard())
|
||||||
case msg.HANDLE_TYPE_EX_CARD: // B收到A置换卡牌
|
case msg.HANDLE_TYPE_EX_CARD: // B收到A置换卡牌
|
||||||
FriendMod := p.PlayMod.getFriendMod()
|
FriendMod := p.PlayMod.getFriendMod()
|
||||||
cardInfo, ok := m.Extra.(card.CardInfo)
|
cardInfo, ok := getCardInfoFromExtra(m.Extra)
|
||||||
if !ok {
|
if !ok {
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
@ -258,7 +278,7 @@ func (p *Player) handle(m *msg.Msg) error {
|
|||||||
)
|
)
|
||||||
case msg.HANDLE_TYPE_SELECT_EX_CARD: // A收到B选择卡牌进行置换
|
case msg.HANDLE_TYPE_SELECT_EX_CARD: // A收到B选择卡牌进行置换
|
||||||
FriendMod := p.PlayMod.getFriendMod()
|
FriendMod := p.PlayMod.getFriendMod()
|
||||||
cardInfo, ok := m.Extra.(card.CardInfo)
|
cardInfo, ok := getCardInfoFromExtra(m.Extra)
|
||||||
if !ok {
|
if !ok {
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
@ -270,7 +290,7 @@ func (p *Player) handle(m *msg.Msg) error {
|
|||||||
},
|
},
|
||||||
)
|
)
|
||||||
case msg.HANDLE_TYPE_ARGREE_EX_CARD: // B收到A同意置换卡牌
|
case msg.HANDLE_TYPE_ARGREE_EX_CARD: // B收到A同意置换卡牌
|
||||||
cardInfo, ok := m.Extra.(card.CardInfo)
|
cardInfo, ok := getCardInfoFromExtra(m.Extra)
|
||||||
if !ok {
|
if !ok {
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
@ -284,7 +304,7 @@ func (p *Player) handle(m *msg.Msg) error {
|
|||||||
p.PlayMod.save()
|
p.PlayMod.save()
|
||||||
case msg.HANDLE_TYPE_REFUSE_SELECT_CARD: // A收到B拒绝置换卡牌
|
case msg.HANDLE_TYPE_REFUSE_SELECT_CARD: // A收到B拒绝置换卡牌
|
||||||
CardMod := p.PlayMod.getCardMod()
|
CardMod := p.PlayMod.getCardMod()
|
||||||
cardInfo, ok := m.Extra.(card.CardInfo)
|
cardInfo, ok := getCardInfoFromExtra(m.Extra)
|
||||||
if !ok {
|
if !ok {
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
@ -296,7 +316,7 @@ func (p *Player) handle(m *msg.Msg) error {
|
|||||||
p.PlayMod.save()
|
p.PlayMod.save()
|
||||||
case msg.HANDLE_TYPE_REFUSE_EX_CARD: // B收到A拒绝置换卡牌
|
case msg.HANDLE_TYPE_REFUSE_EX_CARD: // B收到A拒绝置换卡牌
|
||||||
CardMod := p.PlayMod.getCardMod()
|
CardMod := p.PlayMod.getCardMod()
|
||||||
cardInfo, ok := m.Extra.(card.CardInfo)
|
cardInfo, ok := getCardInfoFromExtra(m.Extra)
|
||||||
if !ok {
|
if !ok {
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|||||||
@ -280,6 +280,7 @@ func (p *PlayerChessData) HandleChess(player *Player, handle_list []*msg.ChessHa
|
|||||||
"chess_name": mergeDataCfg.GetNameById(chessId),
|
"chess_name": mergeDataCfg.GetNameById(chessId),
|
||||||
})
|
})
|
||||||
ChessMod.RemoveChess(chessId)
|
ChessMod.RemoveChess(chessId)
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user