diff --git a/behavior_pack_v8jz0zSR/Script_NeteaseModousIY5aSF/xiangyemod/dongwuyangzhi/service/AnimalService.py b/behavior_pack_v8jz0zSR/Script_NeteaseModousIY5aSF/xiangyemod/dongwuyangzhi/service/AnimalService.py index 7cdd842..ed89f38 100644 --- a/behavior_pack_v8jz0zSR/Script_NeteaseModousIY5aSF/xiangyemod/dongwuyangzhi/service/AnimalService.py +++ b/behavior_pack_v8jz0zSR/Script_NeteaseModousIY5aSF/xiangyemod/dongwuyangzhi/service/AnimalService.py @@ -145,13 +145,20 @@ class AnimalService(BlueFoxServerSystem): """ 在动物养殖字典中查找匹配规则: 1. 先精确匹配 (方块名, 物品名) - 2. 没找到再匹配 (方块名, None) —— 空手也能触发的规则 + 2. 空手(None)规则【只允许真·空手时触发】。手持任何物品(包括方块物品)时 + 【不】回退到空手分支,否则手持方块右键鸡窝会误触"取蛋"并取消放置。 """ itemName = itemDict.get("newItemName") if itemDict else None + if itemName == "minecraft:air": + itemName = None # 空手(主手是空气)统一归为 None + # 精确匹配 (方块, 手持物品) recipe = self.animalRecipes.get((blockName, itemName)) if recipe: return recipe - return self.animalRecipes.get((blockName, None)) + # 只有真·空手时才查空手规则;手持方块物品时返回 None(交还默认放置) + if itemName is None: + return self.animalRecipes.get((blockName, None)) + return None # ============================================================================ # 三、计时转发(把"计时源方块"的启动任务交给 AnimalTimerService)