• 欢迎加入MineBBS QQ讨论群:点击查看所有的官方讨论群
  • 我们将于近期对服务器进行迁移,服务可能中断至多2日。请各位安排好自己的访问计划,造成不便敬请谅解!
  • MineBBS入站考试已经上线!想要成为【正式会员】解锁更多功能吗?快来参与吧!【点我去看】
DummyPool——台球插件 | 5种球台支持 | 真实物理引擎 | AI对战系统  [1.21.11-26.X]

原创 开源 娱乐 DummyPool——台球插件 | 5种球台支持 | 真实物理引擎 | AI对战系统 [1.21.11-26.X] 1.0.3-Release

完成注册/登录后下载
版权类型
原创
插件中文名称
某人的台球厅
插件英文名称
DummyPool
原帖地址
#
支持的核心(服务端)
  1. Spigot
  2. Paper
语言支持
中文(简体)
适配版本(Java)
  1. 26.x
开源地址:https://github.com/SuperBigDummy/DummyPool/
更多使用相关信息可在此查看
image1.webp
image2.webp
image3.webp

DummyPool

一个基于 Paper 服务端的高性能台球插件,由 AI Agent 辅助开发。

提供 五种球台真实物理引擎完整的中八 / 九球 / 斯诺克 对战规则。每张球台的 34 项物理参数均可独立调节,所有文案、粒子与音效完全自定义。​

✨ 插件特色
  • 🎱 五种球台:中式八球、九球、斯诺克、开伦、圆形球台
  • ⚙️ 独立物理:每张球台独立保存 34 项物理参数(摩擦力、弹性、旋转衰减等)
  • 🎨 完全自定义:聊天文案(message.yml)、粒子与音效(config.yml)服主自由修改
  • 🧠 AI 辅助:代码稳定、逻辑严谨,性能消耗优化

📐 1. 球台类型与尺寸

类型参数值(Key)台面尺寸(格)球袋说明
🇨🇳 中式八球cn83 × 5(半宽 1.5,半长 2.5)6 个实色(混凝土 1~7)+ 花色(羊毛 9~15)+ 黑八
🔵 九球9-ball / nine_ball3 × 5(半宽 1.5,半长 2.5)6 个1~9 号菱形摆放,首球必须触碰最小号球
🎩 斯诺克snooker4 × 7(半宽 2.0,半长 3.5)6 个15 红 + 6 彩,D 形开球区
🟡 开伦carom3 × 5无袋球台,靠撞击得分
⭕ 圆形球台round半径 = [size]圆形台面,粒子轮廓为圆形

📌 创建提示:创建时请站在目标位置,面朝球台 长边方向;斯诺克按 4×7 特殊对齐(长边中心在方块,短边在边界)。​

🦵 蹲下触发:非创建者站在球台尾部边界外一格(高度差 0~2 格),副手持球杆时蹲下,若拥有相应权限将打开球库。创建者可以打开球台管理菜单。

🛠️ 2. 创建与管理指令

2.1 创建球台

代码:
/dummypool create <名称> <类型> [大小]
  • 类型(必填,不区分大小写):cn8 / 9-ball / snooker / carom / round
  • 大小:仅 round 需要,表示半径(格),其他类型忽略

2.2 查看与删除
代码:
/dummypool list            # 列出所有球台
/dummypool remove <名称>   # 删除球台(仅创建者)

2.3 创建成功
自动生成该球台对应的默认球组,并用粒子特效绘制台面轮廓。

📋 3. 管理菜单(Dialog)

创建者执行以下指令打开功能强大的管理面板:
代码:
/dummypool ui <球台> main
# 或简写
/dummypool set <球台>

菜单共包含 8 个核心功能按钮:
按钮功能说明
⚙️ 参数设置进入 34 项物理参数列表(分 3 页),点击单项后修改数值,超限自动钳位
🔐 权限设置4 项开关(🟢 允许 / 🔴 禁止):开库、放球、击球、对战
📂 打开球库以原版箱子形式打开该球台的球库
🎱 一键摆球按当前规则自动摆球(缺球时弹出确认提示)
✏️ 球库编辑打开 54 格编辑箱:拿出的球自动去标签,放回自动打标签
⚔️ 对战模式打开对战 Dialog(支持中八 / 九球 / 斯诺克)
📥 收球入库将台面上所有球收进球库(满则掉落感应区)
❌ 关闭关闭管理菜单

🦵 蹲下感应区
非创建者站在球台尾部边界外一格(高度差 0~2 格),且副手持球杆时蹲下:
  • 若拥有 球库权限 → 打开球库
  • 若球台无主 → 第一个触发者自动被认领为创建者并打开管理菜单
触发时脚下会有火焰环绕粒子(config.yml 中的 sneak_zone)。

🔑 4. 权限设置(4 项开关)

权限项✅ 允许时❌ 禁止时
打开球库非创建者可打开球库非创建者无法通过蹲下或命令打开
放置/取走球可放球、捡球、摆球放置与摆球操作被拒绝
击打台面球可瞄准并击球无法进入蓄力状态
对战模式可打开对战菜单、加入对局菜单提示无权限

🗄️ 5. 球库系统

  • 打开方式:创建者或有权限的玩家通过菜单、/dummypool ball lib <球台> 或蹲下感应区打开
  • 交互逻辑:操作方式与原版箱子完全一致。关闭时,非球类物品或其他球台的球会自动退回玩家背包
  • 编辑机制:从编辑界面拿出的球会自动移除球台标签(Lore 归属行一并删除);无标签或 pending 标签的球放回时会自动打上本台标签;来自其他球台的球会被拒绝入库
  • 收球指令:/dummypool clear <球台> 或点击菜单按钮可将台面球全部收库(对战模式下禁用)
  • 满库处理:球库最多 54 格,满时进球会掉落到球台尾部感应区地面,可手动捡起

🎱 6. 一键摆球

指令

代码:
/dummypool ball place <球台> [模式]
  • 中式八球 / 斯诺克:不需要模式参数
  • 开伦:需要指定模式(如 /dummypool ball place <台> <模式>

流程
  • 预清理:摆球前自动将台面现有球收库(球库满则掉落感应区)
  • 缺球处理:若缺少必要球种,聊天栏会提示缺少列表,并附带 [点击确认继续] / [点击取消] 交互按钮
  • 开球机制:摆球完成后,下一杆击打母球视为开球(速度 ×1.3,并触发开球特效)

各球台默认球组
球台类型球组配置
中式八球母球 + 实色 1~7 号 + 黑八 + 花色 9~15 号,三角排列,两角球不同组
九球母球 + 1~9 号,菱形排列:1 号在顶点,9 号在中心,其余随机
斯诺克母球 + 15 颗红球 + 黄/绿/咖啡/蓝/粉/黑,按标准点位摆放
开伦母球 + 黄球 + 红球 + 蓝球

⚙️ 7. 物理参数列表(共 34 项,每台独立)

键名即 config.yml 及菜单中的英文标识。管理菜单中可逐项调整。

代码:
| 参数(键)                | 默认值 | 调高影响 ↑                           | 调低影响 ↓                           |
|---------------------------|--------|--------------------------------------|--------------------------------------|
| tableFriction             | 0.11   | 球减速快、杆法消耗大                  | 球滑得更远                           |
| slipThreshold             | 0.01   | 更早进入纯滚动、球走得远              | 滑动摩擦更久、减速快                  |
| rollingDeceleration       | 0.3    | 纯滚动很快停                         | 滚得久                               |
| stopThreshold             | 0.02   | 球早停                               | 球磨蹭更久                           |
| spinDecayX                | 0.999  | 前后旋保留久                         | 前后旋消失快                         |
| spinDecayY                | 0.985  | 侧旋持久                             | 侧旋很快消失                         |
| spinDecayScale            | 1.0    | 所有旋转掉得快                       | 旋转掉得慢                           |
| spinFrictionCouplingX     | 0.55   | 摩擦更快洗白前后旋                   | 拉回/跟进更持久                      |
| maxSpinSpeed              | 150    | 可打出更转的球                       | 杆法效果受限                         |
| collisionDistance         | 0.30   | 过早判定                             | 被加载/解算钳回 0.30                  |
| collisionIterations       | 15     | 贴球/高速更稳但更耗性能               | 可能穿模                             |
| collisionRestitution      | 0.93   | 碰撞更弹                             | 碰撞更软                             |
| collisionSpinTransfer     | 0.4    | 目标球容易被带转                     | 加塞对目标球影响小                   |
| ballHitFriction           | 0.3    | 母球偏得多                           | 几乎不偏                             |
| cushionRestitution        | 0.83   | 弹得猛                               | 被胶条吸能                           |
| cushionFriction           | 0.6    | 香蕉球明显                           | 撞库不偏                             |
| masseMinAngle             | 45     | 更难扎                               | 小角度也能扎                         |
| masseMaxAngle             | 80     | 大角度继续增强                       | 弧线提前封顶                         |
| masseCurveCoeff           | 6.0    | 弯得急                               | 弧线平缓                             |
| masseAxisTiltMax          | 60     | 弧线侧偏更强                         | 轴偏小、弧线弱                       |
| masseDecayOmegaRef        | 30     | 弧线早回正(短弧)                   | 弧线久(长弧)                       |
| masseBankMax              | 15     | 倾斜夸张                             | 倾斜轻微                             |
| masseBankOmegaRef         | 30     | 需高转速才压弯                       | 小转速就压弯                         |
| masseOffsetBoost          | 3.0    | 更易打转、弧线强                     | 扎杆塞弱                             |
| jumpAngleThreshold        | 75     | 更难跳                               | 更容易跳                             |
| jumpMinPowerLevel         | 4      | 需更大力度                           | 轻打也能跳                           |
| jumpVelocityScale         | 0.5    | 跳得高远                             | 跳得低                               |
| jumpMaxHeight             | 1.0    | 可跳更高                             | 跳不高                               |
| landingSpinLoss           | 0.6    | 落地后旋转基本消失                   | 落地仍带旋转                         |
| collisionSpinTransferX    | 0.12   | 高低杆带转明显                       | 碰撞只轻微损耗旋转                   |
| cushionSpinTransferX      | 0.05   | 吸库/跟进强                          | 只靠台面摩擦                         |
| cushionSpinLossX          | 0.25   | 撞库后前后旋掉得多                   | 保留多                               |
| cushionSpinLossY          | 0.3    | 加塞撞库后旋转消失快                 | 连续撞库仍偏                         |
| cushionTangentialLoss     | 0.1    | 贴库滑行衰减快                       | 贴库滑得远                           |

📖 8. 完整指令大全

指令说明权限
/dummypool create <名称> <类型> [大小]创建球台所有人
/dummypool remove <名称>删除球台创建者
/dummypool list列出所有球台所有人
/dummypool clear <球台>收台面球入库(对战模式拦截)放置权限
/dummypool ui <球台> <操作>管理 Dialog(main/params/param/perms/lib/place/edit/game/invite/close)创建者
/dummypool set <球台>同 ui main创建者
/dummypool game <球台> enable开启对战模式创建者
/dummypool game <球台> menu打开对战 Dialog对战权限
/dummypool game <球台> invite <玩家>邀请加入成员
/dummypool game <球台> join加入对战所有人
/dummypool game <球台> reject拒绝邀请(5 分钟屏蔽)所有人
/dummypool game <球台> start开始对战成员
/dummypool game <球台> end结束本场(模式保持)成员
/dummypool game <球台> concede斯诺克被超分方认输成员
/dummypool game <球台> choice own/let斯诺克犯规选择非犯规方
/dummypool ball get <类型>获取球(如 concrete-white、glass-yellow)OP
/dummypool ball lib <球台>打开球库球库权限
/dummypool ball place <球台> [模式]摆球;confirm/cancel 缺球处理放置权限
/dummypool cue get <名称>领取球杆所有人
/dummypool reloadmessages重载 message.ymlOP
/dummypool reloadconfig重载 config.ymlOP

---
🚀 DummyPool 致力于为 Minecraft 服务器带来最真实、最可定制的台球体验。欢迎提交 Issue 反馈建议或 Bug!
  • 喜欢
反馈: xiaosuan1
作者
MrDummy
下载
28
查看
361
首次发布
最后更新

评分

0.00 星 0 次评分
后退
顶部 底部