AdventureRule - 服务器规则同意📃 | 书本交互🌟| 防绕过✨ | 群组服支持

原创 开源 世界管理 AdventureRule - 服务器规则同意📃 | 书本交互🌟| 防绕过✨ | 群组服支持 1.2.0

请登录后获取
版权类型
原创
插件中文名称
冒险规则书
插件英文名称
AdventureRule
原帖地址
#
支持的核心(服务端)
  1. Spigot
  2. Paper
  3. Purpur
语言支持
中文(简体)
适配版本(Java)
  1. 1.21
[MD] # --- ## 插件信息 | 项目 | 详情 | |------|------| | **插件名称** | AdventureRule | | **版本** | 1.1.0 | | **作者** | Feiyes | | **支持版本** | Minecraft 1.21.4+(Paper / Purpur) | | **Java 要求** | JDK 21+ | | **存储方式** | YAML(本地) / MySQL(跨服) | | **前置插件** | 无(可选 AuthMe) | | **联系方式** | QQ: 823959438 | --- ## 插件简介 你是否在为以下问题烦恼? - 玩家进服后不看规则,违规后说"我不知道有规则" - 想让玩家必须阅读规则才能游戏,但又不想用笨重的方案 - 需要一个美观、沉浸式的规则展示系统 **AdventureRule** 就是为此而生! 本插件利用 Minecraft 原版书本界面,为玩家呈现一本精心排版的服务器规则书。玩家**必须阅读到最后一页并点击同意按钮**才能开始游戏。整个流程自然流畅,像翻阅一本真正的书一样。 --- ## 功能亮点 ### 沉浸式书本体验 不是弹窗,不是聊天刷屏,而是一本**真正的 Minecraft 书本**。玩家翻页阅读规则,在最后一页点击按钮做出选择。支持颜色代码、粗体、斜体等丰富样式。 ### 完善的防绕过机制(全部可配置) 阅读规则期间,以下限制全部可在配置中独立开关: - **失明 + 缓慢** 药水效果 - **禁止左键/右键** — 无法攻击、破坏、放置、使用物品 - **禁止移动** — 冻结位置(允许转头) - **禁止 NPC/实体交互** — 无法与村民、NPC 插件交互 - **禁止执行命令** — 支持白名单(默认允许 `/login` `/register`) - **禁止聊天** — 无法发送消息 - **禁止物品丢弃/拾取** - **按 ESC 或完成按钮** → 实时检测并自动重新打开规则书 玩家**没有任何办法**绕过规则流程! ### AuthMe 登录兼容 服务器使用了 AuthMe 登录插件?没问题! - 启用 `authme.enabled: true` 后,规则书将在玩家**完成 AuthMe 登录后**才触发 - 命令白名单默认包含 `/login` `/register` `/l` `/reg`,不影响登录流程 - 登录后可配置延迟再触发规则书 ### 外部规则书模板(save/ 文件夹) - 插件自动在 `plugins/AdventureRule/save/` 下生成示例模板 - 在该文件夹中放置 `.yml` 文件即可自动加载为规则书 - 无需在 `config.yml` 中重复配置,方便管理多个规则书 ### 安全的按钮系统 使用 Paper 独有的 `ClickEvent.callback` 技术实现按钮点击。与传统的命令点击不同,本插件的按钮: - 不暴露任何命令给玩家 - 无法被玩家手动输入触发 - 直接在插件内部执行逻辑 ### 智能的同意/拒绝流程 **玩家同意规则后:** - 播放升级音效 - 发送绿色成功提示 - 移除所有限制效果 - 记录同意信息到数据库 - 设定有效期(默认7天,可配置) **玩家拒绝规则后:** - 自动打开一本"拒绝提示书",告知玩家后果 - 拒绝提示书中有两个选择: - 「好的,我再次阅读」→ 返回规则书 - 「我知道了,断开链接」→ 3秒后踢出服务器 - 踢出消息可自定义 ### 多规则支持 可以配置**多本不同的规则书**,例如: - `server_rule` - 服务器基本规则 - `pvp_rule` - PVP 专属规则 - `build_rule` - 建筑区规则 每本规则书可独立配置内容、按钮、音效、行为。管理员可通过命令指定让玩家阅读特定规则。 ### 数据存储与群组服支持 **单服使用:** 默认 YAML 文件存储,零配置开箱即用。 **群组服使用:** 切换为 MySQL 模式,所有子服连接同一数据库,同意记录自动共享。使用 HikariCP 高性能连接池,内置内存缓存,对服务器性能影响极小。 ### 自动过期机制 同意记录可设置有效期(默认7天)。过期后玩家下次登录将自动重新弹出规则书。适合需要定期让玩家重新确认规则的服务器。设置为 `0` 则永不过期。 --- ## 命令与权限 ### 管理员命令 `/ar`(权限:`adventurerule.admin`,默认 OP) | 命令 | 说明 | |------|------| | `/ar trigger <玩家> [规则ID]` | 强制对指定玩家弹出规则书 | | `/ar list [规则ID] [页码]` | 列出所有同意记录(分页显示) | | `/ar check <玩家>` | 查看指定玩家的所有同意状态 | | `/ar reset <玩家> [规则ID]` | 重置玩家同意状态(下次登录重新弹出) | | `/ar reload` | 重载配置文件 | | `/ar help` | 显示帮助信息 | ### 玩家命令(权限:`adventurerule.rule`,默认所有玩家) | 命令 | 说明 | |------|------| | `/rule [规则ID]` | 主动查看服务器规则 | 所有命令均支持 **Tab 自动补全**。 --- ## 配置文件详解 ### 基础设置 ```yaml settings: check-interval: 60 # 过期记录检查间隔(秒) default-expire-days: 7 # 同意有效天数(0 = 永不过期) trigger-delay: 40 # 玩家加入后延迟多少tick触发(建议40-60) effects: blindness: # 失明效果 enabled: true duration: 6000 # 持续时间(tick,20tick = 1秒) amplifier: 1 # 效果等级 slowness: # 缓慢效果 enabled: true duration: 6000 amplifier: 1 restrictions: # 行为限制(v1.1.0 新增) allow-left-click: false # 是否允许左键 allow-right-click: false # 是否允许右键 allow-movement: false # 是否允许移动 allow-npc-interact: false # 是否允许NPC交互 block-all-commands: true # 是否屏蔽所有命令 allowed-commands: # 命令白名单 - "/login" - "/register" - "/l" - "/reg" block-chat: true # 是否屏蔽聊天 block-item-drop: true # 是否禁止丢弃物品 block-item-pickup: true # 是否禁止拾取物品 block-command-message: "&c请先阅读并同意服务器规则后才能使用命令!" block-action-message: "&c请先阅读并同意服务器规则!" authme: # AuthMe 兼容(v1.1.0 新增) enabled: false # 启用后,登录完成才触发规则书 delay-after-login: 20 # 登录后延迟tick messages: consent-success: "&a您已同意服务器规则,祝您游戏愉快!" consent-fail: "&c您必须同意规则才能继续游戏!" kick-message: "&c您拒绝了服务器规则,已被断开连接。" read-to-last-page: "&e请阅读至最后一页" ``` ### 数据库配置 ```yaml database: type: yaml # yaml = 本地文件 / mysql = 数据库 host: localhost port: 3306 database: adventurerule username: root password: "" table-prefix: "ar_" # 表名前缀 ``` ### 规则书配置 每本规则书在 `rules` 节点下定义,使用唯一 ID 区分: ```yaml rules: my_server_rule: title: "服务器规则" # 书本标题 author: "Server Admin" # 书本作者 pages: # 页面列表 - | &0&l欢迎来到我们的服务器! &0在开始游戏之前, 请仔细阅读以下规则。 &8>>> 翻页继续 - | &0&l基本规则 &01. 尊重每一位玩家 &02. 禁止使用外挂 &03. 禁止恶意破坏 &04. 禁止刷屏/广告 &8>>> 翻页确认 - | &0请确认您已阅读并理解 以上所有规则。 [&a&l我已阅读并同意该协议](command:ar:consent) [&c&l我已阅读且不同意该协议](command:ar:deny) buttons: consent: sound: "ENTITY_PLAYER_LEVELUP" # 同意时的音效 title: "&a&l感谢您的同意!" # 同意时的标题提示 deny: sound: "ENTITY_VILLAGER_NO" # 拒绝时的音效 deny-book: "refuse_book" # 拒绝后打开的提示书 on-esc: "reopen" # ESC行为:reopen/ignore/kick on-done: "title+reopen" # 完成按钮行为:reopen/title+reopen/kick/ignore reopen-delay: 100 # 重新打开延迟(tick) ``` ### 按钮格式 在页面内容中使用以下格式创建可点击按钮: ``` [按钮显示文字](command:动作名称) ``` **内置动作:** | 动作 | 说明 | |------|------| | `ar:consent` | 同意规则 | | `ar:deny` | 拒绝规则 | | `ar:back` | 返回原规则书 | | `ar:kick` | 踢出服务器 | --- ## 使用场景 ### 场景一:新人入服引导 新玩家首次加入服务器时自动弹出规则书,必须同意后才能游戏。7天后自动过期,再次登录需要重新确认。 ### 场景二:规则更新通知 服务器规则更新后,管理员通过 `/ar reset <玩家>` 重置指定玩家或所有玩家的同意状态,玩家下次登录时将重新收到规则书。 ### 场景三:群组服统一规则 多个子服连接同一 MySQL 数据库,玩家在任意一个子服同意规则后,其他子服不会重复弹出。 ### 场景四:特定规则触发 管理员可通过 `/ar trigger 玩家名 pvp_rule` 对特定玩家弹出 PVP 规则书,适合在玩家进入特殊区域前使用。 --- ## 安装步骤 1. 确保服务端为 **Paper 1.21.4+** 或 **Purpur 1.21.4+**,Java 版本为 **21+** 2. 将 `AdventureRule-1.0.0.jar` 放入 `plugins` 文件夹 3. 启动服务器,插件自动生成默认配置 4. 编辑 `plugins/AdventureRule/config.yml`,自定义规则内容 5. 执行 `/ar reload` 重载配置 6. 完成!新玩家加入时将自动弹出规则书 --- ## 常见问题 **Q: 支持 Spigot 吗?** A: 不支持。插件使用了 Paper 专属 API(Adventure 组件 + ClickEvent.callback),仅兼容 Paper 及其分支。 **Q: 玩家能绕过规则吗?** A: 不能。插件在阅读期间禁止了移动、交互、命令执行,按 ESC 会自动重新打开规则书。唯一的出路就是同意或被踢出。 **Q: 同意过期后怎么办?** A: 过期后玩家下次登录会自动重新弹出规则书。设置 `default-expire-days: 0` 可以永不过期。 **Q: 可以不施加失明效果吗?** A: 可以,在配置中将 `effects.blindness.enabled` 设为 `false` 即可。缓慢效果同理。 **Q: 群组服怎么配置?** A: 将所有子服的 `database.type` 改为 `mysql`,配置相同的数据库连接信息即可。 **Q: 怎么让规则书更好看?** A: 使用 `&` 颜色代码来美化文字。例如 `&a` 绿色、`&c` 红色、`&l` 粗体、`&o` 斜体。每页内容不宜过多,建议分多页展示。 **Q: 插件对性能有影响吗?** A: 影响极小。数据库操作全部异步执行,内置内存缓存减少查询次数,事件监听仅针对有活跃会话的玩家。 **Q: 使用 AuthMe 怎么配置?** A: 在配置中设置 `settings.authme.enabled: true`,插件会在玩家完成 AuthMe 登录后才弹出规则书。命令白名单已默认包含 `/login` `/register` 等命令。 **Q: 如何添加自定义规则书?** A: 两种方式:1) 在 `config.yml` 的 `rules` 节点下添加;2) 在 `save/` 文件夹中创建 `.yml` 文件,参考自动生成的 `example_full.yml` 格式,插件自动加载。 --- ## 更新计划 - [ ] PlaceholderAPI 支持(条件触发) - [ ] BossBar 阅读进度提示 - [ ] 书本模板变量(如 `{player}` 显示玩家名) - [ ] 导入/导出同意数据 - [ ] 支持更多触发条件(特定世界、特定物品等) - [ ] Web 管理面板(可选) --- ## 更新日志 ### v1.1.0 - **修复** ESC/完成按钮关闭书本后不重新打开的问题(实时 InventoryView 检测) - **新增** 可配置行为限制(左键/右键/移动/NPC交互/命令/聊天/物品丢弃拾取) - **新增** 命令白名单(兼容 AuthMe `/login` `/register` 等命令) - **新增** AuthMe 登录挂钩(玩家完成登录后再触发规则书) - **新增** `save/` 文件夹,支持外部规则书模板文件(自动加载) - **新增** 可配置的触发延迟(`trigger-delay`) - **改进** 默认配置展示全部功能,包含详细注释 ### v1.0.0(首次发布) - 基于 Minecraft 书本的规则展示系统 - 安全的 callback 按钮交互 - 同意 / 拒绝 / 返回 / 踢出完整流程 - YAML + MySQL 双存储方案 - HikariCP 连接池 + 内存缓存 - 完整的管理命令系统(含 Tab 补全) - 防绕过机制(失明/缓慢/禁止移动/交互/命令) - 多规则书支持 - 同意记录自动过期 - 高度可配置(效果、消息、音效、行为等) --- ## 反馈与支持 如果你在使用中遇到任何问题,或者有功能建议,欢迎通过以下方式联系我: - **QQ**: 823959438 - 帖子下方留言 如果觉得插件好用,请给个好评支持一下,谢谢! --- *AdventureRule - 让每一位玩家都认真对待服务器规则* 截图: [/MD]
  • PixPin_2026-03-15_00-54-35.webp
    PixPin_2026-03-15_00-54-35.webp
    66.1 KB · 查看: 42
  • PixPin_2026-03-15_00-54-55.webp
    PixPin_2026-03-15_00-54-55.webp
    54.7 KB · 查看: 42
  • PixPin_2026-03-15_00-55-02.webp
    PixPin_2026-03-15_00-55-02.webp
    54.5 KB · 查看: 42
  • PixPin_2026-03-15_00-55-09.webp
    PixPin_2026-03-15_00-55-09.webp
    60.6 KB · 查看: 40
  • ebe65da5-6320-49c4-b1bb-944126a696f0.webp
    ebe65da5-6320-49c4-b1bb-944126a696f0.webp
    47.6 KB · 查看: 40
  • a9badc1d-2519-4e03-8983-ef02b0c866d7.webp
    a9badc1d-2519-4e03-8983-ef02b0c866d7.webp
    239.9 KB · 查看: 49
作者
费伊
价格
150.00金粒
下载
19
查看
554
首次发布
最后更新

评分

0.00 星 0 次评分

最新更新

  1. AdventureRule - 服务器规则同意📃 | 书本交互🌟| 防绕过✨ | 兼容AuthME/AuthMeAnvilLogin

  2. AdventureRule - 支持版本1.20.1+ 1.21.4+ 服务器规则同意📃 | 书本交互🌟| 防绕过✨

    ## v1.1.5 (2026-03-28) ### ✨ 新功能 #### 规则书独立文件夹存储 重构了规则书配置存储结构,每本规则书现在有独立的文件夹: **新结构**: ```...
后退
顶部 底部