= 创作分享 =
编程开发
求助,在1.21中播放唱片的方法是什么
lklolo

求助,在1.21中播放唱片的方法是什么

lklolo 于 2024-8-22 19:18 ( 3月前 ) [复制链接] [只看楼主] [打印]
382 1
本帖最后由 QQ酱234405 于 2024-8-22 19:45 编辑

我在写模组的一个功能的时候需要播放唱片,我不知道该如何获取唱片的声音事件,也没有找到原版的唱片机播放的方法。
我该如何播放唱片?代码贴在下面了
  1. public class DiscOnUes {
  2.     private static TypedActionResult<ItemStack> onUse(PlayerEntity player, World world, Hand hand) {

  3.         ItemStack itemStack = player.getStackInHand(hand);
  4.         ItemStack offHandStack = player.getOffHandStack();

  5.         if (!world.isClient) {
  6.             if (isRight(itemStack) && isOffHand(offHandStack)) {
  7.                 //已经拿到唱片itemStack,可以获取唱片物品itemStack.getItem()
  8.                 //我不知道该如何播放唱片
  9.             }
  10.         }
  11.         return new TypedActionResult<>(ActionResult.PASS, itemStack);
  12.     }

  13.     private static boolean isRight(ItemStack itemStack){
  14.         return itemStack.isIn(ModItemTags.ADISC) || itemStack.isIn(ModItemTags.MINECRAFT_DISC);
  15.     }

  16.     private static boolean isOffHand(ItemStack offHandStack) {
  17.         if (offHandStack.isEmpty()) {
  18.             return false;
  19.         }
  20.         if (offHandStack.getItem() instanceof BlockItem) {
  21.             BlockItem blockItem = (BlockItem) offHandStack.getItem();
  22.             return blockItem.getBlock() == Blocks.JUKEBOX;
  23.         }
  24.         return false;
  25.     }

  26.     public static void register() {
  27.         UseItemCallback.EVENT.register(DiscOnUes::onUse);
  28.     }
  29. }
复制代码

求助解答

发表于 2024-8-22 19:18:24 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

回复 | 举报

该帖共收到 1 条回复!
临幸临幸你的mod
if (itemStack.getItem() instanceof MusicDiscItem musicDiscItem){
     SoundEvent sound = musicDiscItem.getSound();
     player.playSound(sound, xxxxxx);
     player.getWorld().playSound(sound,xxxxxx);
}
解释:将item转为MusicDiscItem,通过MusicDiscItem获取SoundEvent 对象,用player或world的playsound方法传入SoundEvent 对象
发表于 2024-10-20 16:53:52 | 只看该作者

回复 | 举报

百科目前不允许匿名发帖哦~ 请先 [ 登陆 ][ 注册 ] 吧~

本版积分规则

发新帖
  • 回复
  • 点评
  • 评分

[ MC百科(mcmod.cn) 除另有声明,所有开放公共编辑的内容均使用 BY-NC-SA 3.0 协议 ]

Minecraft百科CC协议
快速回复 返回顶部 返回列表