2025-08-20 22:34:45 +08:00
|
|
|
|
package controller
|
|
|
|
|
|
|
|
|
|
|
|
import (
|
|
|
|
|
|
"blazing/common/socket/errorcode"
|
2026-01-20 06:15:55 +08:00
|
|
|
|
"blazing/logic/service/fight"
|
2025-08-20 22:34:45 +08:00
|
|
|
|
"blazing/logic/service/friend"
|
2025-09-14 01:35:16 +08:00
|
|
|
|
"blazing/logic/service/player"
|
2025-08-20 22:34:45 +08:00
|
|
|
|
)
|
|
|
|
|
|
|
2025-12-24 19:03:11 +08:00
|
|
|
|
// GetOnlineFriends 获取在线好友列表
|
|
|
|
|
|
// data: 包含用户ID列表的输入信息
|
|
|
|
|
|
// c: 当前玩家对象
|
|
|
|
|
|
// 返回: 好友在线信息和错误码
|
2026-04-05 07:24:36 +08:00
|
|
|
|
func (h Controller) GetOnlineFriends(data *SeeOnlineInboundInfo, c *player.Player) (result *friend.SeeOnlineOutboundInfo, err errorcode.ErrorCode) {
|
2025-08-20 22:34:45 +08:00
|
|
|
|
result = &friend.SeeOnlineOutboundInfo{}
|
|
|
|
|
|
result.Friends = make([]friend.OnlineInfo, 0)
|
|
|
|
|
|
return
|
|
|
|
|
|
}
|
2026-01-20 06:15:55 +08:00
|
|
|
|
|
|
|
|
|
|
// FriendAdd 处理添加好友请求
|
|
|
|
|
|
// data: 包含要添加好友的用户ID
|
|
|
|
|
|
// c: 当前玩家对象
|
|
|
|
|
|
// 返回: 无数据内容的响应和错误码
|
2026-04-05 07:24:36 +08:00
|
|
|
|
func (h Controller) FriendAdd(data *FriendAddInboundInfo, c *player.Player) (result fight.NullOutboundInfo, err errorcode.ErrorCode) {
|
2026-01-20 06:15:55 +08:00
|
|
|
|
|
|
|
|
|
|
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: 当前玩家对象
|
|
|
|
|
|
// 返回: 无数据内容的响应和错误码
|
2026-04-05 07:24:36 +08:00
|
|
|
|
func (h Controller) FriendAnswer(data *FriendAnswerInboundInfo, c *player.Player) (result fight.NullOutboundInfo, err errorcode.ErrorCode) {
|
2026-01-20 06:15:55 +08:00
|
|
|
|
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: 当前玩家对象
|
|
|
|
|
|
// 返回: 无数据内容的响应和错误码
|
2026-04-05 07:24:36 +08:00
|
|
|
|
func (h Controller) FriendRemove(data *FriendRemoveInboundInfo, c *player.Player) (result fight.NullOutboundInfo, err errorcode.ErrorCode) {
|
2026-01-20 06:15:55 +08:00
|
|
|
|
c.Service.Friend.Del(data.UserID)
|
|
|
|
|
|
return
|
|
|
|
|
|
}
|