- 版权类型
- 原创
- 插件中文名称
- AL好友
- 插件英文名称
- ALFriends
- 原帖地址
- #
- 支持的核心(服务端)
- Spigot
- Paper
- Folia
- Purpur
- 语言支持
- 中文(简体)
- 适配版本(Java)
- 最新版本
- 26.x
- 1.21
ALFriends
好友管理 / 四种亲密关系 / Dialog 私聊 / Home 与领地共享 / SQLite 与 MySQL
围绕好友关系、实时私聊、亲密度和好友资源共享设计的完整社交插件。
适用于:生存服 / RPG 服 / 养老服 / 社交服 / Paper / Folia / Luminol
好友管理 / 四种亲密关系 / Dialog 私聊 / Home 与领地共享 / SQLite 与 MySQL
围绕好友关系、实时私聊、亲密度和好友资源共享设计的完整社交插件。
适用于:生存服 / RPG 服 / 养老服 / 社交服 / Paper / Folia / Luminol
插件简介
ALFriends 是一款面向 Paper、Folia、Luminol 等 1.21.x 服务端的好友社交插件。玩家可通过配置驱动的 GUI 添加好友、处理申请、私聊、建立亲密关系,并将自己的 Home 或领地定向共享给指定好友。
插件不仅是好友名单,还包含双向好友关系、申请有效期、黑名单、亲密度、关系人数限制、聊天记录、管理员聊天审查、共享权限管理和公开 API。数据库操作采用异步方式,并声明支持 Folia。
- 双向好友申请、同意、拒绝、删除和黑名单
- 亲密好友置顶并按亲密度排序,普通好友支持字母/数字排序
- 挚友、恋人、知己、搭档四种亲密关系
- 每种关系可独立配置显示名、初始亲密度和人数上限
- 亲密关系建立与解除均采用双方申请流程
- 支持亲密度道具和可配置的亲密度上限
- 支持 Dialog 私聊、历史分页、消息提醒冷却和双方同步刷新
- 支持离线消息记录和聊天记录保留时间
- 支持 HuskHomes Home 定向共享
- 支持 Dominion、Residence 领地定向共享
- 支持 SQLite 和 MySQL,MySQL 使用 HikariCP
- 菜单、语言、按钮、Lore 和 shape 布局均可配置
- 支持 MiniMessage、传统颜色代码和十六进制颜色
- 支持 CraftEngine、ItemsAdder、Oraxen 菜单物品
- 提供 Bukkit Services API、只读数据模型和公开事件
- 支持 Paper / Folia 调度环境
核心亮点
| 模块 | 说明 | 适合场景 |
|---|---|---|
| 好友系统 | 好友申请、同意、拒绝、删除、黑名单和在线状态 | 所有社交服务器 |
| 亲密关系 | 挚友、恋人、知己、搭档,支持独立人数限制和亲密度 | RPG、养老、社交玩法 |
| Dialog 私聊 | 聊天记录分页、双方消息对齐、提醒冷却和同步刷新 | Paper 1.21 原生交互 |
| 聊天审查 | 管理员按玩家查看聊天对象与双方记录 | 纠纷处理、服务器管理 |
| Home 共享 | 只显示当前好友分享给我的 Home 或我分享给他的 Home | 生存服、养老服 |
| 领地共享 | 按指定好友共享 Dominion 或 Residence 权限 | 生存建筑、团队领地 |
| 配置菜单 | 每个菜单使用独立 YAML、shape、物品和点击动作 | 服主自定义界面 |
| 公开 API | 其他插件可查询好友、亲密关系、私聊和共享数据 | 任务、组队、公会联动 |
好友与亲密关系
好友流程:
- 通过菜单或 `/alfs add <玩家>` 发送申请
- 接收方点击聊天提示中的同意、拒绝或申请列表
- 同意后双方建立好友关系并显示对方头颅
- 好友管理菜单可进入私聊、传送、共享和亲密关系操作
| 配置键 | 显示名 | 初始亲密度 | 人数上限 |
|---|---|---|---|
| best_friend | 挚友 | 100 | 1 |
| lover | 恋人 | 200 | 1 |
| confidant | 知己 | 80 | 3 |
| partner | 搭档 | 50 | 5 |
Dialog 私聊
- 通过 `/alfs openchat <玩家>` 或好友菜单打开
- 默认每页 5 条消息,可修改 `chat.dialog_page_size`
- 旧消息在上一页,新消息位于当前最后一页
- 对方消息靠左,自己的消息靠右
- 发送后不额外向自己发送“你对玩家说”提示
- 双方同时打开聊天框时,新消息会触发对话内容刷新
- 收到私聊时显示可点击的 `[查看]`
- 同一发送方默认 10 分钟内只提醒一次,消息仍正常保存
- 聊天记录写入数据库,并可配置保留天数
Home 与领地共享
共享内容始终绑定“拥有者 + 指定好友”,不会将所有好友的数据混在一起。
Home 共享:
- 需要 HuskHomes
- “我的分享”只显示我分享给当前好友的 Home
- “收到的分享”只显示当前好友分享给我的 Home
- 默认每名好友最多 3 个,可通过权限提升至 5、10 或无限
- 支持 Dominion 或 Residence
- 共享时为指定好友设置领地访问权限
- 取消共享或删除好友时清理相应关系
- 菜单按当前好友过滤,不显示其他好友的领地
菜单与语言自定义
- 菜单位置:`plugins/ALFriends/menu/`
- 语言位置:`plugins/ALFriends/languages/`
- 支持 `&a`、`&l`、`&m`、`&n`、`&o`、`&r`
- 支持 `7FFAA` 与 `&x&5&5&F&F&A&A`
- 支持 MiniMessage,例如 `<gradient:#ff0000:#00ff00>文字</gradient>`
- 支持 PLAYER_HEAD、CustomModelData 和第三方插件物品
- 修改后执行 `/alfs reload`
安装与兼容
推荐环境:
- Java 17 或更高版本
- Paper / Folia / Luminol 1.21.x
- SQLite 可直接使用,MySQL 需要配置连接
- 将 `ALFriends-1.0.0-PERFORMANCE.jar` 放入 `plugins` 文件夹
- 启动服务器并等待生成配置
- 按需修改 `config.yml`、`database.yml`、语言与菜单
- 重启服务器,或使用 `/alfs reload` 重载支持热更新的内容
- HuskHomes:Home 共享
- Dominion 或 Residence:领地共享
- CraftEngine、ItemsAdder、Oraxen:菜单自定义物品
常用命令
代码:
/alfs
/alfs help
/alfs add <玩家>
/alfs remove <玩家>
/alfs accept <玩家>
/alfs deny <玩家>
/alfs requests
/alfs intimate
/alfs intimate add <玩家>
/alfs intimate remove <玩家>
/alfs intimate accept <玩家>
/alfs intimate deny <玩家>
/alfs block [玩家]
/alfs unblock <玩家>
/alfs msg <玩家> <消息>
/alfs openchat <玩家>
/alfs reply <消息>
/alfs share <玩家>
/alfs cancel
代码:
/alfs inspect <玩家>
/alfs give <道具ID> [数量]
/alfs reload
主要权限
| 权限 | 说明 | 默认 |
|---|---|---|
| alfriends.use | 使用基础功能 | 所有玩家 |
| alfriends.friend.* | 好友申请、处理、删除和黑名单 | 所有玩家 |
| alfriends.intimate.* | 亲密关系功能 | 所有玩家 |
| alfriends.chat | 私聊功能 | 所有玩家 |
| alfriends.share.* | Home 与领地共享 | 所有玩家 |
| alfriends.share.home.5 | 每名好友最多共享 5 个 Home | 否 |
| alfriends.share.home.10 | 每名好友最多共享 10 个 Home | 否 |
| alfriends.share.home.unlimited | Home 分享无限制 | OP |
| alfriends.admin.inspect | 查看玩家聊天记录 | OP |
| alfriends.admin.reload | 重载配置 | OP |
数据库、性能与 API
- 默认 SQLite,支持 MySQL 与 HikariCP
- 好友、亲密关系、聊天记录和共享数据均持久化
- 数据库业务方法使用 CompletableFuture 异步执行
- 通过 Bukkit ServicesManager 获取 `ALFriendsAPI`
- API 覆盖好友、亲密关系、聊天、共享与 GUI
- 提供只读 record 数据模型和 `ALFriendsActionEvent`
让好友、私聊、亲密关系和共享功能集中在一个插件中。