You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Forge 1.20.1 Java自定义吉他右键无音效及动画问题求助

问题排查与解决方案

1. 音效配置文件键名拼写错误

你的音效配置中,键名写成了"guitar_stummed",但注册的SoundEvent名称是guitar_strummed(少了一个字母r),这会导致游戏无法匹配到对应的音效定义。

修正后的音效配置文件:

{
  "guitar_strummed": {
    "subtitles": "sounds.learningmod.guitar_strummed",
    "sounds": [
      "learningmod:guitar_strummed",
      "learningmod:guitar_strummedb"
    ]
  }
}

2. use方法返回值与交互反馈缺失

当前use方法返回super.use(...),游戏会继续走默认物品交互逻辑,不会标记当前交互已完成,同时也没有添加使用动画。需要返回明确的成功结果并添加动作反馈:

修正后的use方法代码:

@Override
public InteractionResultHolder<ItemStack> use(Level pLevel, Player pPlayer, InteractionHand pUsedHand) {
    // 播放音效
    pLevel.playSound(null, pPlayer.getX(), pPlayer.getY(), pPlayer.getZ(), ModSounds.GUITAR_STRUMMED.get(), SoundSource.PLAYERS, 1f, 1.f);
    // 添加玩家手持物品的使用动画
    pPlayer.swing(pUsedHand, true);
    // 返回成功结果,标记交互已处理完成
    return InteractionResultHolder.success(pPlayer.getItemInHand(pUsedHand));
}

3. 额外验证项

  • 确认音效文件路径正确:将guitar_strummed.ogg和guitar_strummedb.ogg放在resources/assets/learningmod/sounds/目录下
  • 检查ModSounds类是否已注册到模组事件总线,比如在主模组类的初始化方法中调用ModSounds.register(FMLJavaModLoadingContext.get().getModEventBus());
  • 确保吉他物品类正确继承Item,并通过DeferredRegister完成注册

内容的提问来源于stack exchange,提问作者Just Another Commenter

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.24 20:33:25