```
feat(friend): 添加好友系统功能实现 完善好友管理功能,包括添加好友、回复好友请求、删除好友等操作, 同时优化了相关数据结构和接口定义。 BREAKING CHANGE: 调整了黑名单数据结构,将BlackInfo从结构体改为uint32数组 ```
This commit is contained in:
@@ -38,11 +38,16 @@ func (h Controller) GetServerOnline(data *user.SidInfo, c gnet.Conn) (result *rp
|
||||
|
||||
result.IsVip = 1
|
||||
result.ServerList = rpc.GetServerInfoList(service.NewBaseSysUserService().GetPerson(data.Head.UserID).Debug)
|
||||
ser := playerservice.NewUserService(data.Head.UserID)
|
||||
f, b := ser.Friend.Get()
|
||||
for _, v := range f {
|
||||
result.FriendInfo = append(result.FriendInfo, rpc.FriendInfo{v, 1})
|
||||
}
|
||||
result.BlackInfo = b
|
||||
defer func() {
|
||||
|
||||
// share.ShareManager.DeleteSession(t1)
|
||||
|
||||
ser := playerservice.NewUserService(data.Head.UserID)
|
||||
kickErr := ser.Info.Kick(data.Head.UserID)
|
||||
if kickErr != nil {
|
||||
fmt.Println("踢人失败", kickErr)
|
||||
|
||||
@@ -3,7 +3,6 @@ package controller
|
||||
import (
|
||||
"blazing/common/data/xmlres"
|
||||
"blazing/common/socket/errorcode"
|
||||
"blazing/cool"
|
||||
"blazing/logic/service/fight"
|
||||
"blazing/logic/service/pet"
|
||||
"blazing/logic/service/player"
|
||||
@@ -120,9 +119,8 @@ func (h Controller) TogglePetBagWarehouse(
|
||||
|
||||
index, pet, ok := player.FindPet(data.CatchTime)
|
||||
if ok {
|
||||
if cool.Config.ServerInfo.IsVip == 0 { //正式服才会真正放会精灵
|
||||
player.Service.Pet.UPdate(*pet)
|
||||
}
|
||||
|
||||
player.Service.Pet.UPdate(*pet)
|
||||
|
||||
player.Info.PetList = append(player.Info.PetList[:index], player.Info.PetList[index+1:]...)
|
||||
}
|
||||
|
||||
@@ -2,6 +2,7 @@ package controller
|
||||
|
||||
import (
|
||||
"blazing/common/socket/errorcode"
|
||||
"blazing/logic/service/fight"
|
||||
"blazing/logic/service/friend"
|
||||
"blazing/logic/service/player"
|
||||
)
|
||||
@@ -15,3 +16,53 @@ func (h Controller) GetOnlineFriends(data *friend.SeeOnlineInboundInfo, c *playe
|
||||
result.Friends = make([]friend.OnlineInfo, 0)
|
||||
return
|
||||
}
|
||||
|
||||
// FriendAdd 处理添加好友请求
|
||||
// data: 包含要添加好友的用户ID
|
||||
// c: 当前玩家对象
|
||||
// 返回: 无数据内容的响应和错误码
|
||||
func (h Controller) FriendAdd(data *friend.FriendAddInboundInfo, c *player.Player) (result fight.NullOutboundInfo, err errorcode.ErrorCode) {
|
||||
|
||||
v, ok := c.GetSpace().User.Load(data.UserID)
|
||||
|
||||
if ok {
|
||||
v.SendPackCmd(8001, friend.InformMessage{
|
||||
UserID: c.Info.UserID,
|
||||
Nick: c.Info.Nick,
|
||||
Type: data.Head.CMD,
|
||||
})
|
||||
|
||||
}
|
||||
return
|
||||
}
|
||||
|
||||
// FriendAnswer 处理好友请求的回复
|
||||
// data: 包含发起好友请求的用户ID和回复标志(1为同意,0为拒绝)
|
||||
// c: 当前玩家对象
|
||||
// 返回: 无数据内容的响应和错误码
|
||||
func (h Controller) FriendAnswer(data *friend.FriendAnswerInboundInfo, c *player.Player) (result fight.NullOutboundInfo, err errorcode.ErrorCode) {
|
||||
v, ok := c.GetSpace().User.Load(data.UserID)
|
||||
|
||||
if ok {
|
||||
v.SendPackCmd(8001, friend.InformMessage{
|
||||
UserID: c.Info.UserID,
|
||||
Nick: c.Info.Nick,
|
||||
Type: data.Head.CMD,
|
||||
Accept: data.Flag,
|
||||
})
|
||||
|
||||
v.(*player.Player).Service.Friend.Add(c.Info.UserID)
|
||||
c.Service.Friend.Add(data.UserID)
|
||||
|
||||
}
|
||||
return
|
||||
}
|
||||
|
||||
// FriendRemove 删除好友
|
||||
// data: 包含要删除的好友ID
|
||||
// c: 当前玩家对象
|
||||
// 返回: 无数据内容的响应和错误码
|
||||
func (h Controller) FriendRemove(data *friend.FriendRemoveInboundInfo, c *player.Player) (result fight.NullOutboundInfo, err errorcode.ErrorCode) {
|
||||
c.Service.Friend.Del(data.UserID)
|
||||
return
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user