- 版权类型
- 二次开发
- 插件中文名称
- CS枪械
- 插件英文名称
- CrackShot
- 支持的核心(服务端)
- Spigot
- Paper
- 语言支持
- 中文(简体)
- 适配版本(Java)
- 1.21
一、为什么需要这个版本
所有枪械音效全部失效,而且不报错
1.21.x 的org.bukkit.Sound 把枚举常量名换成了注册表键形式:下划线名只作为「别名静态字段」保留——所以
Sound.valueOf("ENTITY_GENERIC_EXPLODE") 是成功的,但 values() 里根本查不到它。原版按 values() 建索引,于是配置里的音效名一个都匹配不上,异常又被 catch 吞掉,最终表现就是:插件加载正常、日志干净、枪一点声音都没有。实测 54 个武器文件、134 个音效名:
| 修复前 | 修复后 | |
| 可解析音效名 | 0 / 134 | 133 / 134 |
现代粒子名被静默忽略
原版粒子解析器只认 6 种关键字,其余直接continue 丢弃,一行提示都不打。于是 FLAME-30、EXPLOSION_HUGE-2、SMOKE_LARGE-10、LAVA-10 这类写法写了等于没写。二、本版特性
音效
- 下划线名 / 点号名 / 命名空间键 三种写法通吃
- 补齐 431 条历史别名(EXPLODE、HURT_FLESH、SHOOT_ARROW …),并补上 RANDOM_* 等漏网项
- 无法解析时在控制台明确点名(不再是静默失败
-
代码:
Sounds_Shoot: ENTITY_GENERIC_EXPLODE-1-2-0 # 原有写法,继续可用 Sounds_Shoot: minecraft:entity.generic.explode-1-2-0 # 新增:命名空间键 Sounds_Shoot: entity.generic.explode-1-2-0 # 新增:点号注册表键
粒子
- 支持任意 org.bukkit.Particle 常量(116 种),不再局限于 6 个关键字
- 支持带数据粒子(方块、物品、颜色)
-
代码:
Particles: Enable: true Particle_Player_Shoot: FLAME-30 # 粒子名-数量 Particle_Impact_Anything: BLOCK-STONE-20-0.5 # 粒子名-方块-数量-扩散 Particle_Critical: DUST-255_120_0-30 # 粒子名-R_G_B-数量 Particle_Backstab: minecraft:large_smoke-40 # 命名空间键 Particle_Hit: block_break-152 # 方块破坏粒子(老数字 ID 依然有效) Particle_Terrain: true # 地形弹着点:按命中方块出「破坏」粒子
方块破坏粒子
block_break 的材质既支持现代名(GOLD_BLOCK、WATER),也支持 1.12 时代的老数字 ID(152、55、1)。另补了 47 个 1.13 已删除材质名的映射(FLOWING_LAVA→LAVA、GRASS→GRASS_BLOCK、MOB_SPAWNER→SPAWNER、PORTAL→NETHER_PORTAL …),0–255 号数字 ID 现在 254 个可用。Tab 补全
/crackshot 全链路补全,按权限过滤:
代码:
/crackshot <TAB> -> list / give / get / reload / config
/crackshot give <TAB> -> 在线玩家名
/crackshot give 玩家 <TAB> -> 该玩家有权限拿到的武器名
/crackshot give 玩家 武器 -> 1 / 16 / 32 / 64
/crackshot get <TAB> -> 武器名
/crackshot list <TAB> -> all / 1~12(页数)
RGB 渐变色
武器名、描述、各类提示消息全部支持十六进制颜色与渐变(配置里写哪种都行):
代码:
Item_Name: '<gradient:#FF0000:#00FF00>熔火之心</gradient>'
Item_Lore: |-
{#FF0000>}赤红的枪身映着沙暴{#00FF00<}
<#00AAFF>纯色写法也支持</#00AAFF>
&#FFAA00 这种老写法也行
支持的写法一览:
| 类型 | 写法 |
| 渐变 | <gradient:#起色:#止色>文字</gradient> 或 {#起色>}文字{#止色<} |
| 纯色 Hex | {#RRGGBB} / <#RRGGBB> / &#RRGGBB / 裸 #RRGGBB |
| 传统色码 | &a &l &n 等照旧可用 |
- 渐变内不要嵌
&l/&n等格式码——渐变是逐字下发十六进制色码,会重置格式,所以嵌进去不生效。 - 单个汉字的渐变取的是「结束色」,建议 1~2 字的文本直接写纯色。
三、安装
- 服务端:Paper 1.21.x(实测 Paper 1.21.11 + Java 21)
- 覆盖到 plugins/ 下
- 删掉 plugins/.paper-remapped/ 里的旧 CrackShot 缓存——Paper 按源 jar 哈希索引,旧副本会遮蔽新 jar
- 重启服务器(改的是 jar,/reload 无效)
四、说明
- 原插件 CrackShot 作者 Shampaggon;原作者已停更,本版仅为 1.21.x 兼容性修复,请优先支持原作者。
- jar 内保留了全部原始类,公开 API 无删减。
- 修复效果均为实机验证(在服务器内加载插件类加载器跑全量扫描):音效 133/134、方块破坏材质 64/66、数字 ID 254/256、粒子 115/121 可解析,剩余项均为配置文件笔误。
- 遇到 bug,或想补某个音效 / 粒子别名,回帖说明即可。