- 版权类型
- 原创
- 插件中文名称
- YCC的老吴
- 插件英文名称
- YCC cat
- 原帖地址
- #
- 支持的核心(服务端)
- Paper
- 语言支持
- 中文(简体)
- 前置组件
- CraftEngine
- 适配版本(Java)
- 1.21
【YCC Cat】原版猫老吴模式 / 猫咪互殴 / 多猫大乱斗 / CraftEngine 自定义声音
插件版本:1.2.0
适用服务端:Paper 1.21
运行环境:Java 21
构建方式:Maven
资源包管理:CraftEngine Paper Plugin 26.7.4
前置插件:CraftEngine 仅用于自定义声音资源包;缺少时仍可使用原版声音 fallback
有任何问题欢迎加入Q群1101907336咨询
插件介绍
--------------------------------------------------YCC Cat 是一款围绕 Minecraft 原版猫制作的轻量行为插件。
它不会增加新的生物,不会替换猫的模型和贴图,也不会使用 ItemDisplay 冒充猫。所有参与玩法的实体始终是 Minecraft 原版 Cat,因此不会破坏驯服、坐下、跟随主人、命名牌、拴绳、繁殖、进入船和矿车等原版功能。
当两只符合条件的猫靠近时,它们可能进入“老吴模式”:先互相靠近并面对彼此,播放老吴声音,完成倒计时后开始追逐、跳跃和互相攻击。当附近有三只以上猫时,还可以触发有最大参与数量限制的猫咪大乱斗。
插件的定位是轻量、有趣、安全,适合生存服、朋友服、整活服和带有 CraftEngine 资源包的综合服务器。
--------------------------------------------------
主要功能
--------------------------------------------------1. 猫对玩家哈气
玩家靠近猫时,猫有一定概率短暂面向玩家并播放哈气声音。哈气只有声音和少量粒子表现,不会对玩家造成伤害,也不会把玩家设置为攻击目标。
哈气距离、概率、持续时间、冷却时间、是否影响野生猫和驯服猫、是否需要视线都可以配置。
2. 老吴模式
两只符合条件的猫进入指定范围后,插件会选择距离最近的一组。
两只猫会先通过 Paper Pathfinder 寻路靠近,到达安全间距后再开始倒计时,避免旧版本中“倒计时结束了但猫仍站在远处”的问题。
倒计时过程中两只猫互相朝向、停止攻击其他目标,并播放由 CraftEngine 资源包提供的老吴声音。
3. 猫咪对战
倒计时结束后,两只猫只会攻击当前组内的另一只猫。
战斗并不依赖原版猫攻击同类的 AI,而是由插件状态机主动控制:
Pathfinder 追逐目标
→ 距离判断
→ 攻击冷却判断
→ 短距离扑击
→ 插件受控的猫对猫伤害
→ 声音和低密度烟雾粒子
可以配置战斗时间、攻击范围、伤害、攻击冷却、寻路速度、跳跃力度,以及猫是否允许死亡。默认开启非致死保护。
4. 恢复阶段
默认情况下,猫不会因为娱乐战斗永久死亡。
当任意一只猫接近最低安全生命值时,双方会停止攻击并进入恢复阶段。恢复到指定生命比例后,如果战斗时间还没有结束,可以继续战斗。
5. 多猫大乱斗
附近猫数量达到要求时,可以触发多猫大乱斗。
每只猫同一时间只有一个主要目标,目标会按照稳定轮转逻辑重新分配,避免所有猫永远集中攻击同一只猫。参与数量、半径、概率、持续时间、冷却和目标切换时间都可以配置。
6. 坐下状态兼容
配置允许坐下的猫参与时,插件会暂时让猫站立,事件结束后恢复原来的坐下状态。如果玩家在事件中再次让猫坐下,当前事件会安全结束。
7. CraftEngine 自定义声音
插件提供适用于 CraftEngine 26.7.4 的独立声音内容包,只包含:
哈气声音
老吴声音
攻击声音池
恢复声音
中英文字幕
内容包不会修改任何模型和贴图,也不会注册自定义物品或家具。
--------------------------------------------------
安全设计
--------------------------------------------------插件不会伤害玩家。
插件不会把玩家设置为猫的目标。
插件不会攻击村民或其他非猫实体。
插件不会破坏方块。
插件不会修改玩家背包。
插件不会移动或传送玩家。
插件不会生成额外的猫、ItemDisplay 或其他实体。
猫死亡、实体移除、区块卸载、跨世界、离开范围、插件关闭、配置重载或管理员停止事件时,插件都会清理分组、目标、寻路、攻击记录和临时状态。
--------------------------------------------------
开发技术说明
--------------------------------------------------插件使用 Java 21 和 Paper 1.21.1 API 开发,不使用 NMS、反射或 Minecraft 内部版本类。
核心逻辑采用集中式同步任务,不会为每只猫创建一个永久循环任务。猫状态、事件小组、攻击目标和冷却都以 UUID 保存,避免长期持有实体对象导致内存泄漏。
主要状态流程:
LAOWU_APPROACH
→ LAOWU_COUNTDOWN
→ FIGHTING
→ RECOVERING
→ FIGHTING 或结束清理
距离判断优先使用 distanceSquared,世界内猫扫描受 max-managed-cats-per-world 限制。
战斗伤害通过一次性的 AttackPair 上下文放行。只有插件正在执行、攻击者与目标属于同一小组、目标与当前分配目标一致时,EntityDamageByEntityEvent 才允许这次伤害通过。其他由受管理猫造成的伤害会被取消。
寻路使用 Paper API:
cat.getPathfinder().moveTo(target, speed);
如果 Pathfinder 无法生成路径,插件才使用受限速度向量作为短距离 fallback。结束事件时会调用 stopPathfinding,并恢复插件暂时修改的感知、发光和坐下状态。
--------------------------------------------------
部分配置示例
--------------------------------------------------laowu:
enabled: true
cat-distance: 10.0
start-chance: 1.0
countdown-seconds: 10
allow-sitting-cats: true
temporarily-stand-cats: true
approach-timeout-seconds: 10
approach-distance: 2.4
pathfinder-speed: 1.0
fight:
enabled: true
damage-between-cats: 0.5
can-kill-cats: false
duration-seconds: 30
attack-range: 2.5
pathfinder-speed: 1.2
max-active-pair-groups-per-world: 4
sounds:
hiss:
custom: "ycc_cat:hiss"
fallback: "ENTITY_CAT_HISS"
laowu:
custom: "ycc_cat:laowu"
fallback: "ENTITY_CAT_AMBIENT"
--------------------------------------------------
管理与测试指令
--------------------------------------------------/cat help
/cat reload
/cat on
/cat off
/cat status
/cat stop
/cat stop all
/cat test hiss
/cat test laowu
/cat test fight
/cat test brawl
所有指令支持 Tab 补全,并提供 ycccat.use、ycccat.admin、ycccat.reload、ycccat.test 权限节点。
--------------------------------------------------
安装方法
--------------------------------------------------1. 使用 Java 21 启动 Paper 1.21.1 服务端。
2. 将 YccCat-1.2.0-Paper-1.21.1.jar 放入 plugins 文件夹。
3. 将 CraftEngine 声音包中的 ycc_cat 文件夹放入 plugins/CraftEngine/resources/。
4. 执行 ce reload,让 CraftEngine 合并、上传并重新发送资源包。
5. 重启服务器,使用 /cat status 检查插件状态。
6. 使用 /cat test laowu 和 /cat test fight 测试附近的两只猫。