diff --git a/src/server/game/message_handler.go b/src/server/game/message_handler.go index df0c54b2..1779a079 100644 --- a/src/server/game/message_handler.go +++ b/src/server/game/message_handler.go @@ -150,7 +150,10 @@ func (p *Player) handle(m *msg.Msg) error { p.PlayMod.save() case msg.HANDLE_TYPE_INVITE_FRIEND: // 邀请好友 InviteMod := p.PlayMod.getInviteMod() - InviteMod.AddInvite(m.From) + err := InviteMod.AddInvite(m.From) + if err != nil { + return err + } p.AddLog(m.From, friend.LOG_TYPE_FRIEND_INVITE, "", m.SendT) p.PlayMod.save() p.PushClientRes(InviteMod.NotifySuccess()) diff --git a/src/server/game/mod/invite/invite.go b/src/server/game/mod/invite/invite.go index 4db9e05a..1cc26505 100644 --- a/src/server/game/mod/invite/invite.go +++ b/src/server/game/mod/invite/invite.go @@ -19,8 +19,12 @@ func (i *InviteMod) InitData() { } } -func (i *InviteMod) AddInvite(id int) { +func (i *InviteMod) AddInvite(id int) error { + if _, exists := i.InviteList[id]; exists { + return fmt.Errorf("invite already exists") + } i.InviteList[id] = struct{}{} + return nil } func (i *InviteMod) GetReward(Index int) ([]*item.Item, error) {