一个纯服务端的 Paper 插件,在 Minecraft 中实现完整的日本立直麻将。玩家通过右键点击 3D 麻将牌实体进行游戏,无需安装任何客户端 Mod。
移植自 Fabric 模组 MahjongCraft(作者:doublemoon1119) 并在此基础上加入了三人麻将的玩法和更多适合服务器的便利功能。
- 纯服务端 — 玩家只需接受服务器资源包即可游玩
- 3D 麻将牌 — 使用 ItemDisplay 实体在 3×3 牌桌上展示立体麻将牌
- 右键交互 — 出牌、吃、碰、杠、立直、荣和、自摸等所有操作均通过右键点击完成
- 多种模式 — 支持四麻(半庄/东风/一局)和三麻,规则完整
- 三人麻将(三麻) — 去除二万~八万、禁止吃、拔北(抜きドラ)、自摸损计分
- 两步出牌确认 — 第一次点击抬起麻将牌,第二次点击确认出牌,同时高亮牌河中相同的牌
- TextDisplay 操作按钮 — 吃/碰/杠等操作以悬浮按钮形式显示,支持二级子菜单
- Boss 血条 — 常驻显示场风、牌山剩余、所有玩家风位/名字/倒计时
- ActionBar HUD — 实时显示局数、本场、宝牌、点数、听牌提示
- Title 通知 — 吃/碰/杠/立直/自摸/荣和/流局等事件以屏幕中央标题显示
- 牌桌持久化 — 服务器重启后牌桌自动恢复
- 自动开始 — 所有玩家准备后 3 秒倒计时自动开始,空位自动补机器人
- 牌桌保护 — 玩家无法破坏牌桌方块
- 中文役种名 — 所有役种以中文显示,支持番/符/满贯等计分展示
- 赤宝牌 — 默认包含 3 张赤宝牌(赤五万/赤五筒/赤五索)
- Paper 1.20.1(感谢 @icgnos)/ 1.21.4+
- Java 21
- 服务器资源包(麻将牌模型和贴图,已包含在
resource-pack/目录中)
| 指令 | 权限 | 说明 |
|---|---|---|
/mahjong create [one/east/twowind/three] |
mahjongplay.command.create |
创建牌桌(一局/东风/半庄/三麻) |
/mahjong destroy [牌桌ID] |
mahjongplay.command.destroy |
销毁指定牌桌(支持 Tab 补全) |
/mahjong bot |
mahjongplay.command.bot |
添加机器人 |
/mahjong kick <座位号> |
mahjongplay.command.kick |
踢出玩家 |
/mahjong start |
mahjongplay.command.start |
强制开始游戏 |
/mahjong join [id] |
mahjongplay.command.join |
加入牌桌 |
/mahjong leave |
mahjongplay.command.leave |
离开牌桌 |
/mahjong ready |
mahjongplay.command.ready |
准备 |
/mahjong unready |
mahjongplay.command.unready |
取消准备 |
/mahjong list |
mahjongplay.command.list |
查看所有牌桌 |
/mahjong info |
mahjongplay.command.info |
查看当前牌桌信息 |
/mahjong action ... |
mahjongplay.command.action |
执行麻将操作命令 |
默认授予的权限节点:
mahjongplay.command.joinmahjongplay.command.leavemahjongplay.command.readymahjongplay.command.unreadymahjongplay.command.actionmahjongplay.command.listmahjongplay.command.info
未设置 default 的权限节点不会自动授予,需要你自行通过权限插件分配。
./gradlew shadowJar输出:build/libs/MahjongPlay-1.2.0.jar
- 原版模组:MahjongCraft(作者:doublemoon1119)
- 麻将逻辑库:mahjong4j
- 牌面贴图:mahjong_graphic(雀魂样式,作者:lietxia)
MIT
English
A pure server-side Paper plugin that brings full Japanese Riichi Mahjong to Minecraft. Players interact with 3D mahjong tiles on a physical table using right-click entity interactions — no client mod required.
Ported from the Fabric mod MahjongCraft by doublemoon1119.
- Pure server-side — players only need to accept the server resource pack
- 3D tile display using ItemDisplay entities on a 3×3 table
- Right-click interaction for all actions (discard, chii, pon, kan, riichi, ron, tsumo)
- 4-player (半庄/東風/一局) and 3-player (三麻) modes with full rule support
- 3-player mahjong (三麻): removed 2-8 manzu tiles, disabled chii, nukidora (拔北), tsumo loss scoring
- Two-click discard confirmation with discard pile highlight
- TextDisplay action buttons with two-level sub-menus
- Boss bar showing all players' wind/name/timer, round info, and wall count
- ActionBar HUD with round, dora, points, and tenpai indicator
- Title notifications for game events (chii/pon/kan/riichi/tsumo/ron/draw)
- Persistent tables that survive server restarts
- Auto-start with 3-second countdown when all players are ready
- Auto-fill bots for empty seats on game start
- Table protection — blocks cannot be broken by players
- Chinese yaku names and score display (fu/han/mangan naming)
- Red fives — 3 red five tiles enabled by default
- Paper 1.21.4+ (tested on Leaves core 1.21.8)
- Java 21
- Server resource pack with mahjong tile models (included in
resource-pack/)
| Command | Permission | Description |
|---|---|---|
/mahjong create [one/east/twowind/three] |
mahjongplay.command.create |
Create a table |
/mahjong destroy [table-id] |
mahjongplay.command.destroy |
Destroy a table (tab-complete) |
/mahjong bot |
mahjongplay.command.bot |
Add a bot |
/mahjong kick <seat> |
mahjongplay.command.kick |
Kick a player |
/mahjong start |
mahjongplay.command.start |
Force start |
/mahjong join [id] |
mahjongplay.command.join |
Join a table |
/mahjong leave |
mahjongplay.command.leave |
Leave a table |
/mahjong ready |
mahjongplay.command.ready |
Mark ready |
/mahjong unready |
mahjongplay.command.unready |
Cancel ready |
/mahjong list |
mahjongplay.command.list |
List all tables |
/mahjong info |
mahjongplay.command.info |
Show table info |
/mahjong action ... |
mahjongplay.command.action |
Execute mahjong action commands |
Permission nodes granted by default:
mahjongplay.command.joinmahjongplay.command.leavemahjongplay.command.readymahjongplay.command.unreadymahjongplay.command.actionmahjongplay.command.listmahjongplay.command.info
Permission nodes without default are not granted automatically and should be assigned manually with a permission plugin.
./gradlew shadowJarOutput: build/libs/MahjongPlay-1.2.0.jar
- Original mod: MahjongCraft by doublemoon1119
- Mahjong logic: mahjong4j
- Tile face textures: mahjong_graphic (Majsoul style, by lietxia)
MIT



