JE服务端

RptChess —— 把一副真象棋摆进服务器:蹩马腿、塞象眼、炮翻山一个不差 [1.21 ~ 26.2]

R***Lv.2 注册会员 发表于 昨天 15:38 IP:贵州省 25 0
插件发布
中文名: RPT象棋
外语名: RptChess
支持版本: 1.21.x 26.x 
适用服务端: Paper 其它 
插件属性: 本体插件 
插件类型: 娱乐 其他 
前置插件: CraftEngine
来源: 转载
原帖地址: https://www.minebbs.com/resources/rptchess.18471/
下载地址: https://www.minebbs.com/resources/rptchess.18471/
最后更新: 2026-10-04
关于这个插件​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. 命令生成棋盘,位置永久记住​[size=1.2]代码:
/rptcs create

管理员看向一块地面(8 格以内),棋盘会铺在那块地面上面,占 9×10 格。

  • 生成前会检查 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 打包下发给玩家,玩家不需要自己装任何东西


内容包必须手动放:内容包(命名空间 rptchess)与插件一起下载,解压后把 rptchess/ 整个目录放进
plugins/CraftEngine/resources/rptchess/(只留一层,不要再套一层目录),再执行一次 /ce reload all。
内容包没有打进 jar 里,漏放这一层的话插件一切正常、但世界里什么都看不见。
贴图与模型全部为本插件原创绘制,不含任何取自第三方模组 / 资源的素材。


目标用户​
  • 想在服务器里做对弈点位的服主 —— 主城、公会大厅、茶馆摆一副,玩家自己上去下。
  • 做活动 / 比赛用的服主 —— 同场双人、状态实时播报,适合摆台做比赛。
  • 正在用 Folia 核心的服主 —— 右键事件与家具读写全部丢回棋盘所在区域线程,文件读写走独立线程。
  • 想要「装上就能玩」的服主 —— 功能权限默认对所有玩家开放,玩家上前就能落子,不需要逐个授权。

是否付费​完全免费。 不需要授权、不需要联网校验,下载即用。
  • 插件不含任何联网校验、授权服务器或机器绑定,安装即用,离线环境照常运行。
  • 不区分免费版 / 高级版,所有功能全开(完整规则引擎 + 对局流程 + 无限棋盘 + 内容包)。
  • 插件未做任何混淆,欢迎安全审查。
获取作者帮助​
途径内容
交流群QQ 群 1124248111
作者 QQ2221899680
游戏内输入 /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 listrptcs.use列出所有棋盘及其状态
/rptcs reloadrptcs.admin重载 config.yml


主指令为 /rptcs,别名 /chess、/xiangqi。
create / remove / reset / repair 的名字参数可省略 —— 只有一个棋盘时会自动选中它。
repair 另有别名 fix、render。


权限节点​
本插件免费开放:功能权限 rptcs.use 默认所有玩家都有,装上即用,不需要额外配置。
如果只想给一部分人用,把 rptcs.use 的默认值在权限插件里收窄即可,例如 LuckPerms:
/lp group default permission set rptcs.use false


权限默认值说明
rptcs.use所有玩家参与对局(右击选子走棋)+ 查看棋盘列表
rptcs.create仅 OP生成 / 移除棋盘(管理员操作,与落子权限分开)
rptcs.admin仅 OPreset / repair / reload,并绕过棋盘【地面方块】保护


注意:rptcs.admin 只能绕过地面方块的保护,棋盘与棋子家具本身连 OP 也砸不掉(要拆整盘用 /rptcs remove)。

主要配置项(config.yml)​
配置项默认值说明
auto-reset-seconds10一局结束后过多少秒自动恢复开局棋面(最小 1)

棋盘与棋子的外观不在这份配置里 —— 它们全部来自 CraftEngine 内容包,想改外观改内容包即可。

常见问题​
  • 生成棋盘时报「上方还有方块」? 棋盘会占 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/ 目录中。
  • 本插件不会主动给予任何物品,也不修改玩家的背包与经验。


您需要登录后才可以回帖 登录 | 立即注册
本版积分规则