在我的Minecraft 1.14.4 mod

时间:2019-07-30 18:14:42

标签: java minecraft minecraft-forge

我无法在游戏中实现自定义音乐光盘。带有实际项目的所有内容(纹理,模型,在自动点唱机中播放音乐等)都可以正常工作,但是在播放音乐时,无论您身在何处,都可以听到。我想这样做,以便我的音乐光盘像香草光盘一样具有有限的距离。

这是我对该项的注册(为了方便起见,我仅将其中一张音乐光盘删除了所有其他项):

@SubscribeEvent
public static void registerItems(final RegistryEvent.Register<Item> event) {

    event.getRegistry().registerAll
    (
        //All other items
        ModItems.music_disc_song = new ModMusicDiscItem(15, new SoundEvent(location("song")), (new Item.Properties().group(MODGROUP).maxStackSize(1).rarity(Rarity.RARE))).setRegistryName(location("music_disc_song"))
    );
}

这是我在ModItems中对光盘的初始化:

//All other items
public static Item music_disc_song;

这是ModMusicDiscItem类:

public class ModMusicDiscItem extends MusicDiscItem {

    public ModMusicDiscItem(int id, SoundEvent sound, Item.Properties prop) {
        super(id, sound, prop);
    }
}

这是我的sounds.json:

{
    "song": {
        "sounds": [
            {
                "name": "censoredid:music_discs/song",
                "volume": 0.05,
                "stream": true
            }
        ]
    }
}

同样,播放音乐可以正常工作,但是音量不会随着距离的增加而减小。该代码适用于1.13.2(当然,将MusicDiscItem更改为ItemRecord),但在1.14.3或1.14.4中无效。感谢您的帮助。

2 个答案:

答案 0 :(得分:1)

该文件需要以单声道记录,然后再传输到.ogg。 Mono允许游戏单独基于透视图编辑声音,而立体声(您要处理的内容)则仅播放音频文件,即音频文件。

答案 1 :(得分:0)

This answer on Arqade指出声音具有可能会影响它的控制台命令;似乎建议您在sounds.json文件中为“ volume” 输入一个非零的值可能会导致它是全局的。 我现在不能尝试使用它,但是尝试删除volume变量,或将其设置为等于0的值。

如果这不起作用,请尝试使用其他答案中的服务器命令。