- 版权类型
- 原创
- 插件中文名称
- RPT象棋
- 插件英文名称
- RptChess
- 原帖地址
- #
- 支持的核心(服务端)
- Paper
- Folia
- 语言支持
- 中文(简体)
- 前置组件
- CraftEngine
- 适配版本(Java)
- 26.x
- 1.21
关于这个插件
RptChess 是一个跑在服务器世界里的中国象棋。原版做不到这件事 —— 既没有能够精确摆出 90 个交叉点的方块,也没有能判定「马腿被蹩住」的逻辑。RptChess 把这两件事拆开:棋盘与棋子交给 CraftEngine 渲染,走子规则交给插件判定。
- 棋盘不是贴图,是摆在地面上的家具:9 列 × 10 行共 90 个交叉点,河界、九宫斜线、炮位兵位十字一应俱全,占地正好 9×10 个方块;
- 32 枚棋子各是一件家具,被吃掉的直接消失,走过去就换位置 —— 和真实棋盘的观感一致;
- 规则是完整实现,不是简化版:蹩马腿 / 塞象眼 / 炮翻山 / 兵过河横走 / 送将非法 / 将帅照面非法,全部照古法;
- 同场双人:两个玩家站在同一副棋盘前轮流走子,先右击自己的棋子选中、再右击目标交叉点落子。
功能说明
1. 走子规则:按古法实现,不做简化
| 棋子 | 走法 | 特殊规则 |
| 帅 / 将 | 九宫内直走一格 | 不能与对方将帅照面(中间无棋子直对即非法) |
| 仕 / 士 | 九宫内斜走一格 | — |
| 相 / 象 | 斜走两格 | 塞象眼(中间点有子则不能走);不能过河 |
| 马 | 走「日」字 | 蹩马腿(马腿位置有子则不能走) |
| 车 | 直线任意格 | 路径上不能有子 |
| 炮 | 直线任意格 | 吃子必须隔恰好一个子(翻山),不吃子时路径必须空 |
| 兵 / 卒 | 向前一格 | 过河后可以左右横走一格,永不后退 |
2. 对局流程:选中 → 落子 → 判定
- 右击己方棋子 → 该交叉点出现高亮方框,提示「已选中」
- 右击目标交叉点 → 走子、吃子、切换先后手
- 每次落子都在棋盘周围播报走子(如
红 张三:车 a1 → a4,吃 黑 卒) - 走完立刻判定:
- 对方无子可走且正被将军 → 将死,判负
- 对方无子可走但没被将军 → 困毙,同样判负(照古法)
- 对方被将军但还有解 → 播报「将军!XX 请应将」,对局继续
3. 落子前的合法性拦截
插件在真正走子之前就拦掉非法操作,并给出人话原因:- 「现在是黑方走棋,不能动对方的棋子。」
- 「这步走不了:马腿被蹩住了」
- 「这步走不了:走出九宫了」
- 「这步走不了:走完不能让自己的将帅被将军」
4. 执子机制(防止乱动)
每一方的第一个去点它棋子的人,会被记成这一方的执子者(红 / 黑各一名)。- 别人再来点同色棋子 → 提示「红方由 张三 执子」,不让他动;
- 同一个人可以同时执两方(想一个人复盘 / 试棋就自己两边都点一遍);
- 服务器重启后,棋面、轮到谁、双方执子者都还在;服务端重启也会按存档恢复棋面。
5. 结束与重开
- 分出胜负后,棋盘进入「已结束」状态,此时右击只提示等待重开;
- 过
auto-reset-seconds(默认 10 秒)自动恢复开局棋面,红先行,双方执子者一并清空; - 管理员也可以随时
/rptcs reset立即重开。
6. 命令生成棋盘,位置永久记住
代码:
/rptcs create
- 生成前会检查 9×10 的空间是否被方块挡住,挡住就提示先清空;
- 红方固定在 +Z(南)一侧,红先行;
- 位置、棋面、双方全部写进
plugins/RptChess/boards.yml,重启照常恢复; - 想删掉:
/rptcs remove。
7. 砸不掉,也修得回来
- 棋盘与棋子在任何游戏模式下都无法破坏 —— 左键点它们不会有任何变化、也不会掉出物品(连 OP 也不行)。想拆掉整盘只能用
/rptcs remove,它会连同全部棋子家具一起清干净。 - 棋盘所在区域的地面方块受保护:普通玩家破坏 / 放置都会被拦下(
rptcs.admin可以绕过,方便服主整理地形)。 - 万一显示出岔子(换过 CraftEngine 版本、区块数据出过异常、从旧版本升级上来残留了旧家具等),管理员两条命令就能收拾干净:
/rptcs repair—— 只重铺显示:先在棋盘这一片清掉所有本插件的旧家具(含跨存档残留),再按当前棋面重新摆一遍;不动对局进度、不动双方执子者;/rptcs reset—— 重开一局:恢复开局棋面,并把棋盘与棋子一起重建。
支持版本与环境
| 项目 | 说明 |
| Minecraft 版本 | 1.21 ~ 26.2(同一个 jar 跨版本,字节码目标 Java 21) |
| 服务端核心 | Paper、Folia(已声明 folia-supported: true) |
| Java 运行环境 | Java 21 及以上 |
| 前置插件 | CraftEngine(必需 —— 棋盘和棋子全靠它渲染;缺了插件仍能加载、命令照常可用,但世界里什么都看不见) |
| 数据库 | 不需要。只生成 config.yml 与 boards.yml |
| 资源包 | 随插件一起下载的内容包(16 张原创贴图 + 16 个模型),由 CraftEngine 打包下发给玩家,玩家不需要自己装任何东西 |
目标用户
- 想在服务器里做对弈点位的服主 —— 主城、公会大厅、茶馆摆一副,玩家自己上去下。
- 做活动 / 比赛用的服主 —— 同场双人、状态实时播报,适合摆台做比赛。
- 正在用 Folia 核心的服主 —— 右键事件与家具读写全部丢回棋盘所在区域线程,文件读写走独立线程。
- 想要「装上就能玩」的服主 —— 功能权限默认对所有玩家开放,玩家上前就能落子,不需要逐个授权。
是否付费
完全免费。 不需要授权、不需要联网校验,下载即用。- 插件不含任何联网校验、授权服务器或机器绑定,安装即用,离线环境照常运行。
- 不区分免费版 / 高级版,所有功能全开(完整规则引擎 + 对局流程 + 无限棋盘 + 内容包)。
- 插件未做任何混淆,欢迎安全审查。
获取作者帮助
| 途径 | 内容 |
| 交流群 | QQ 群 1124248111 |
| 作者 QQ | 2221899680 |
| 游戏内 | 输入 /rptcs help 查看全部指令与说明 |
使用教程
安装
- 把
RptChess-1.0.0.jar放进服务端plugins/目录。 - 把随插件一起下载的内容包
rptchess/放进plugins/CraftEngine/resources/rptchess/(只留一层)。 - 重启服务端(换 jar / 新装插件不支持热加载)。
- 启动后执行一次
/ce reload all(让 CraftEngine 载入棋盘与棋子)。 - 首次启动会生成
plugins/RptChess/config.yml。 - 开箱即用:所有玩家默认就能下棋(
rptcs.use默认对所有玩家开启),不需要额外授权。
快速上手(4 步)
- 找一块空地,看向地面,输入
/rptcs create→ 棋盘生成在脚下前方; - 两名玩家分别站到棋盘两侧(红方在 +Z 南侧);
- 红方玩家右击自己的一枚棋子 → 出现高亮框 → 右击目标交叉点 → 落子;
- 黑方同法应对,直到一方被将死 / 困毙,10 秒后自动重开。
指令列表
| 指令 | 权限 | |
/rptcs help | 免权限 | 显示指令帮助 |
/rptcs create [名字] | rptcs.create | 看向地面,在它上方生成 9×10 棋盘 |
/rptcs remove [名字] | rptcs.create | 移除棋盘(连同全部棋子家具) |
/rptcs reset [名字] | rptcs.admin | 重开一局:恢复开局棋面,并重铺棋盘与棋子 |
/rptcs repair [名字] | rptcs.admin | 只重铺显示、不动棋局(显示坏了用这个) |
/rptcs list | rptcs.use | 列出所有棋盘及其状态 |
/rptcs reload | rptcs.admin | 重载 config.yml |
权限节点
| 权限 | 默认值 | 说明 |
rptcs.use | 所有玩家 | 参与对局(右击选子走棋)+ 查看棋盘列表 |
rptcs.create | 仅 OP | 生成 / 移除棋盘(管理员操作,与落子权限分开) |
rptcs.admin | 仅 OP | reset / repair / reload,并绕过棋盘【地面方块】保护 |
主要配置项(config.yml)
| 配置项 | 默认值 | 说明 |
auto-reset-seconds | 10 | 一局结束后过多少秒自动恢复开局棋面(最小 1) |
常见问题
- 生成棋盘时报「上方还有方块」? 棋盘会占 9×10 格、高一格的空间,先把那片地面清平再生成。
- 为什么点棋子没反应? 三件事按顺序查:① 你右击的是不是当前该走那一方的棋子;② 你服里是否用权限插件手动收窄过
rptcs.use(本插件默认所有玩家都能用);③ 这一方是否已被别人执子(提示里会写出执子者名字)。 - 为什么我不能生成 / 移除棋盘? 生成与移除是管理员操作(
rptcs.create,默认仅 OP)—— 棋盘位置一旦定了就长期存在,所以没有对所有玩家开放。想给某人开,用权限插件授权即可:/lp user <玩家> permission set rptcs.create true。 - 两个人能不能自己下自己的? 能 —— 同一个玩家可以同时执红和执黑(第一次点红子就成为红方执子者,第一次点黑子就成为黑方执子者)。
- 能不能悔棋 / 计时 / 人机? 当前版本不做这三项,只保证「两人对弈 + 完整规则判定」做扎实。
- 棋子被人手贱撸掉怎么办? 撸不掉 —— 棋盘与棋子在任何游戏模式下都砸不掉(左键没反应、也不掉物品,连 OP 也不行)。只有在棋面/显示出岔子(升级、换 CraftEngine 版本、区块数据异常、残留旧家具)时才需要管理员出手:
/rptcs repair按当前棋面重铺显示、/rptcs reset直接重开一局并重建棋盘。 - 服务器重启后棋盘还在吗? 在。位置、棋面、轮到谁、执子者全部写在
boards.yml里;重启后棋面自动重建。 - 换了 CraftEngine 版本要重放内容包吗? 不用重下,内容包文件还是原来那份(与插件一起下载的那个
rptchess/目录)—— 新版本 CraftEngine 只要/ce reload all载入过它就行。若换版本后显示异常,/rptcs repair重铺一遍即可。 - 用了之后没看见棋盘? 确认内容包放在了
plugins/CraftEngine/resources/rptchess/(只留一层,不要多套一层目录),并且执行了/ce reload all。
声明
- 本插件为原创作品,保留所有权利,默认不允许转载与整合。如需转载或整合进服务端整合包,请先通过上方交流群或作者 QQ 联系获取授权。
- 本插件未使用任何混淆手段,欢迎安全审查。
- 本插件不含任何后门、病毒或远程控制代码,不含任何联网校验,所有配置仅保存在服务器本地
plugins/RptChess/目录中。 - 本插件不会主动给予任何物品,也不修改玩家的背包与经验。