Skip to main content

好友、申请与黑名单

好友管理覆盖好友、申请、添加、黑名单四页签及玩家资料、赠礼。私聊独立见聊天,公会见公会。当前源码已有界面和本地模拟数据,尚不能认定真实好友服务联调完成。旧 Markdown 将全部社交标成“预留”已经不足以描述现状;完整设计也不能反过来证明已上线。下列设计来自批准状态 unknown 的飞书文档,并与当前源码对照。

入口、状态与容量​

主界面社交入口默认打开好友页,四页签分别为好友/申请/添加/黑名单;无额外底部功能栏。功能开放条件由配置决定。申请状态分陌生人、已发送、待处理、好友、黑名单;好友关系双向建立,拒绝/删除回到陌生人,拉黑还清除关系及双方待处理申请。解除拉黑不自动恢复好友。

参数来源默认值与规则
好友上限 FriendMax100;已满不可添加或接受,仍可接收/拒绝申请;双方都须有容量
申请上限 FriendRequestMax50,超限淘汰最早申请
申请有效期 FriendRequestExpire7天,到期失效
拒绝冷却 FriendRequestCD24小时;正文写推荐排除,配置表/客户端设计又写重新申请冷却,实际作用范围待确认
推荐数量 RecommendCount10;当前本地模拟每批4人,不等价
推荐刷新 RecommendRefreshCD5秒
搜索结果 SearchResultMax最多20
黑名单 BlacklistMax100
私聊长度/历史100字符/100条;历史条数的会话还是总量口径未统一,详见聊天页
离线显示 OfflineLongTime超过7天显示长期离线/7天以上,不无限增长
未读显示 UnreadMaxDisplay超99显示99+

满员提示应说明自己满或对方满;网络失败与业务拒绝有各自结果,不能把按钮点击当作建立关系。2026-09-08 客户端设计保留“月卡扩容入口”的提案,没有给扩容数、条件和现行配置,本页不将其列为已提供权益。

好友页、玩家资料与删除​

好友条目展示头像/头像框、昵称、等级、战力、在线/最近活跃状态、私聊未读、赠礼/领取和聊天入口;打开页时刷新资料。列表按未读优先→在线优先→最近活跃→建立好友时间排序。同一在线/未读档内的稳定排序方向与实际服务端时间需要核对。

点击头像打开玩家资料,基本字段包括玩家ID、头像/框、昵称、等级、公会、关卡进度、在线状态、战力;最高进度、排行、称号、外观/活动信息仅在游戏确有对应数据时展示。好友可聊天、删除、拉黑,陌生人可申请、拉黑。举报入口属于后续规划,不因设计稿菜单出现就认为已接通。

删除先二次确认;确认后双方好友列表移除,但保留聊天记录和会话。取消不改变关系。客户端设计中的“建立好友时间”可能只能记录本机首次见到,不等同于服务端真实建立时间,不能据此声称跨设备完全一致。

源文档一处将在线状态限于好友,申请/推荐表又列在线字段;陌生人是否可见在线状态未形成一致契约。

好友申请​

从推荐、搜索或玩家资料发送申请。已发送状态不能重复按钮连发;被任一方拉黑不能申请。接收端展示申请人的身份、战力/进度与申请时间,可单独同意或拒绝。

  • 同意前校验双方上限;成功建立双向关系并清理申请。来源把“同意后的通知”标为暂不处理,不能强加实时通知要求。
  • 拒绝移除申请且不通知对方,按冷却规则处理后续申请/推荐。
  • 一键同意按申请时间顺序逐个处理;对方满员跳过,本人满员停止,未成功申请保留,不能一次性清空全部。
  • 一键拒绝须确认;取消不移除,确认按实际成功结果刷新。
  • 过期、被拉黑、双方之一已成为好友等变化应重新判断,不以旧页面快照直接执行。

推荐与搜索​

推荐优先相近等级/主线进度和近期活跃玩家,并满足有效服务器范围。排除自己、已有好友、已发申请、待处理申请、任一方向黑名单、拒绝冷却、离线超过7天。刷新尽量避免与刚展示批次重复;候选不足可少于默认数量,不填入不合法对象。跨服推荐与范围需要配置决定,当前没有已确认跨服契约。

搜索支持精确ID、精确昵称和模糊昵称,结果优先级依次如此;排除黑名单,结果上限20。无输入、没有结果、请求失败和不能添加应有明确反馈;不将搜索输入原文作为埋点字段。结果与推荐均可查看资料并申请,已申请显示对应状态。

黑名单​

从好友、资料或聊天进入拉黑,先确认。成功后移除已有好友关系,清除双方待处理申请,禁止双向私聊和好友申请;推荐/搜索排除。公共频道消息也按聊天屏蔽规则隐藏。达到100人上限时不能继续加入,不能静默淘汰旧黑名单。

黑名单页显示身份及解除操作;解除后是陌生人,后续联系重新按准入规则。解除不恢复历史好友、待处理申请或被屏蔽期间自动补发的内容。举报与拉黑是不同动作,拉黑成功不等于举报受理。

赠礼、领取与后续互助​

每名好友每天可赠送1次,不消耗自己的体力/资源;收到赠礼每日最多领取20次,未领赠礼在日刷新时失效。显示已赠、可赠、可领、今日已达上限等状态。单次赠送/领取与一键操作只对符合条件的好友执行,一键按列表顺序处理到每日总额度;总赠送额度、单次奖励数量与日切时区源案没有统一具体值。

字段 GiftDailyMax/GiftReceiveMax/GiftReward 分别表达赠送上限、领取上限和奖励;领取必须走真实道具链路。好友求助/助力及 HelpDailyMax/HelpReward/HelpReceiveReward 是未来规划,未进入当前可玩范围。不能把赠礼本地计数增加当作服务端体力到账。

红点、空态、文案与音效​

设计红点由待处理申请、私聊未读、可领取赠礼分别产生,再聚合到社交入口;进入好友列表不自动消除申请或未读会话,已领/已处理才更新对应状态。无好友、无申请、无推荐/搜索结果、无黑名单分别展示对应空态与可行动入口,避免空白页面。

固定标题、按钮、提示、相对时间均本地化,玩家昵称/ID保持原文;文字长度适应不同语言,头像和未读标记不被长昵称遮盖。使用通用开页/切页/确认音,同意成功、拒绝普通点击、赠送/领取、发收消息及错误反馈各按动作播放;不另起好友背景音乐。

界面规格、文案与资源​

好友页顶部显示当前/上限(如“好友37/100”),申请页显示申请数量(如“好友申请12”);推荐页包括搜索框、推荐好友标题及刷新按钮,刷新冷却时按钮不可点击。搜索结果可处于好友/已申请/可添加状态。好友条目支持上下滚动及长按/更多菜单(资料、删除、拉黑);资料页有返回、更多、头像和身份区,好友的主按钮为聊天。在线用高亮标记,离线弱化;原文超过7天统一“7天前在线”,另一文案表写“很久未上线”,显示口径待统一。

场景来源规定的文案/反馈
无好友“还没有好友,快去认识新朋友吧!”及“添加好友”按钮
无申请/推荐/黑名单/聊天“暂无好友申请” / “暂时没有找到合适的玩家” / “黑名单为空” / “和好友打个招呼吧!”
关系状态在线、刚刚在线、X分钟前/小时前/天前在线、很久未上线、已申请、好友、已屏蔽
申请与关系反馈好友申请已发送、已添加好友、好友数量已达上限、申请已拒绝、好友已删除、已加入黑名单、已解除拉黑
查询与消息反馈搜索不到该玩家、刷新过于频繁、消息发送失败、举报已提交(后续)
赠礼反馈已赠送、赠送成功、领取成功、今日领取次数已达上限
删除确认标题“删除好友”,正文“确定删除该好友吗?”,取消/确定
拉黑确认标题“加入黑名单”,正文说明不再收到该玩家申请和聊天,取消/确定
全拒确认标题“全部拒绝”,正文“确定拒绝全部好友申请吗?”,取消/确定

美术资源包括好友入口及四页签、搜索/刷新/加号、在线/聊天/未读/更多、删除/拉黑/举报、赠送/领取/求助图标;页面背景、四类列表底板、资料面板、聊天气泡、输入框、页签选中/未选中态、红点/数字底板及空态插图。后续举报/求助资源不应提前变成可点击的已实现功能。文本表的“全部领取”入口也需核实,不能由一键赠送自动推定一键领取已接通。

配置与统计设计​

除了容量表,推荐配置还包括等级/关卡区间、活跃范围、候选池、重复展示延迟、跨服范围;快捷语配置为 ID、文案key、顺序、启用、解锁条件(是否在当前文本版开放见聊天页)。以下为原方案统计契约,未发现本次已接入的证据:

事件字段/口径
friend_page_opensource、friend_count、request_count、unread_count
friend_tab_clicktab(friend/request/add/blacklist)、friend_count
friend_request_sendtarget_uid、source(recommend/search/profile)、result、fail_reason
friend_request_handletarget_uid、action(accept/reject)、source(single/batch)、result
friend_recommend_refreshrefresh_count、result_count
friend_searchsearch_type(uid/nickname)、has_result、result_count;不含原始关键词
friend_deletetarget_uid、friend_duration、result(success/cancel)
friend_block / friend_unblocktarget_uid、relation/source/result;解除记录block_duration
friend_profile_opentarget_uid、relation、source
friend_chat_open / friend_chat_sendtarget_uid、unread_count/source;发送记录message_type、message_length、result,不含正文
friend_chat_mute / friend_reporttarget_uid、action;举报report_type/source/result,后续范围
friend_gift_send / friend_gift_receivetarget_uid或sender_uid、gift_type、daily_send_count或daily_receive_count
friend_help_request / friend_help_completehelp_type、daily_request_count/friend_count;target_uid/reward_id/daily_help_count,后续范围

当前实现与缺口​

frontend 7f0636c9 的 Features/Social/Model/SocialModel.cs 在初始化和读取中调用 EnsureFakeSeeded,填充模拟世界消息、好友、私聊、申请和推荐池;推荐固定4人轮换。源码确实已有四页签、申请/拉黑/删除、赠礼和会话相关 Command 入口,但这些界面数据不能证明真实对端存在。

Features/Social/RedDot/SocialRedDotHandler.cs 当前聚合申请数+私聊未读,尚未包含赠礼;SocialFriendConfig 默认好友/黑名单100、每日领取20。Infrastructure/Nakama 中存在好友/聊天服务代码,2026-09-08 设计说明仍要求业务端回填 nakamaKey、username、worldRoomName、nakamaUserId,并提供搜索、推荐、申请生命周期、拉黑和赠礼能力。当前私聊/世界发送命令仍本地追加,详见聊天页,不能用 Nakama 类存在覆盖接线缺口。

未确认项包括真实双向关系与服务器容量、申请7天/24小时规则、在线时间与排序、跨设备未读、赠礼日切及资产到账;模拟消息中的公会战、组队等文本不是功能存在证据。

来源与现有测试入口​

整合旧 social-chat-guild-friend.md 的社交边界;飞书 Wc0UdS9nDoM43PxzsYUc1wlbnvg 全部好友设计、UI/参数/统计表及 AZIgdFJbxo7no2xBUvbcSIZRnng 交叉规则(阅读件2026-10-13);frontend Infrastructure/Nakama/Nakama社交模块-客户端设计.md 的产品规则及第13节决策、上述 Social 源码。飞书大量表格截图已重组为上述规则表,不以图片附件代替正文。

当前可观察入口为社交→好友/申请/添加/黑名单;尚无本次真实服务联调结果,未定位独立完整好友测试入口。未新增或扩写测试。本地验证:根据项目策略禁止执行。