Jump to content

[SOLVED] [1.14.4] Custom music discs have unlimited attenuation distance


kaydogz

Recommended Posts

I'm having trouble implementing my custom music discs into the game. Everything with the actual item (texture, model, plays music in jukebox, etc.) works properly however, when the music is playing, no matter where you are in the world, you can hear it. I would like to make it so that my music discs have limited distance like the vanilla discs.

Here is my registration of the item (only one of the music discs, I removed all other items for the sake of convenience):

@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"))
	);
}

 

Here is my initialization of the disc in ModItems:

//All other items
public static Item music_disc_song;

 

Here is the class ModMusicDiscItem:

public class ModMusicDiscItem extends MusicDiscItem {

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

 

And here is my sounds.json:

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

 

Again, playing the music works properly, however, the volume does not decrease with distance. This code worked for 1.13.2 in terms of volume decreasing, but does not work in 1.14.3 or 1.14.4. Thanks for any help.

 

Edit: thanks to fanor who found the fix: you need to change the audio file from stereo to mono

Edited by kaydogz
Link to comment
Share on other sites

  • 1 month later...
On 7/30/2019 at 1:16 AM, kaydogz said:

I'm having trouble implementing my custom music discs into the game. Everything with the actual item (texture, model, plays music in jukebox, etc.) works properly however, when the music is playing, no matter where you are in the world, you can hear it. I would like to make it so that my music discs have limited distance like the vanilla discs.

Here is my registration of the item (only one of the music discs, I removed all other items for the sake of convenience):


@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"))
	);
}

 

Here is my initialization of the disc in ModItems:


//All other items
public static Item music_disc_song;

 

Here is the class ModMusicDiscItem:


public class ModMusicDiscItem extends MusicDiscItem {

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

 

And here is my sounds.json:


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

 

Again, playing the music works properly, however, the volume does not decrease with distance. This code worked for 1.13.2 in terms of volume decreasing, but does not work in 1.14.3 or 1.14.4. Thanks for any help.

use " attenuation_distance: "

Link to comment
Share on other sites

10 hours ago, MatsCraft1 said:

use " attenuation_distance: "

Doesn't change anything, the sound still plays thousands of blocks away from the jukebox. And yes, I made sure the value for attenuation_distance was an integer. I even checked vanilla references of attenuation_distance to make sure I used it correctly, and I did. It just doesn't solve my issue.

Link to comment
Share on other sites

I think the issue is that in the sounds.json, it categorizes the sound with the folder that it is in (the record part of “censoredid:records/song”. I’m guessing that it checks if it has the prefix of Minecraft:records, and if it does, it gives the record it’s attenuation properties. This is why vanilla discs work. However, since I am using my mod id, it doesn’t not recognize the category, hence not giving it attenuation. Idk, im probably wrong, but it’s my best guess. But the issue is definitely with the name parameter in the sounds.json, because changing the file location to a vanilla song (minecraft:records/stal) works perfectly

Link to comment
Share on other sites

14 hours ago, kaydogz said:

I think the issue is that in the sounds.json, it categorizes the sound with the folder that it is in (the record part of “censoredid:records/song”. I’m guessing that it checks if it has the prefix of Minecraft:records, and if it does, it gives the record it’s attenuation properties. This is why vanilla discs work. However, since I am using my mod id, it doesn’t not recognize the category, hence not giving it attenuation. Idk, im probably wrong, but it’s my best guess. But the issue is definitely with the name parameter in the sounds.json, because changing the file location to a vanilla song (minecraft:records/stal) works perfectly

It's strange, cause for me, even in "minecraft" it's doesn't work :

 

"myRecords": {
  "category": "record",
  "sounds": [
    {
      "name": "minecraft:records/myRecords",
      "stream": true
    }
  ]
},

 

I have the same issue, no attenuation  xD

Edited by fanor
Link to comment
Share on other sites

3 minutes ago, fanor said:

It's strange, cause for me, even in "minecraft" it's doesn't work :

 


"myRecords": {
  "category": "record",
  "sounds": [
    {
      "name": "minecraft:records/myRecords",
      "stream": true
    }
  ]
},

 

I have the same issue, no attenuation  xD

Well, the record has to be a vanilla one for that to work, because your record is not located in assets/minecraft/sounds/records/, it is located in assets/yourmodid/sounds/records/

Link to comment
Share on other sites

3 minutes ago, fanor said:

Nope

i have placed my music in :

src/main/resources/assets/minecraft/sounds/records/

 

but my sounds.json is in assets/mymodid/

?

The .ogg needs to be in assets/yourmodid/sounds/records, and the sounds.json needs to be in assets/yourmodid

i don’t understand how you placed your music file in the vanilla directory

Link to comment
Share on other sites

1 minute ago, kaydogz said:

?

The .ogg needs to be in assets/yourmodid/sounds/records, and the sounds.json needs to be in assets/yourmodid

i don’t understand how you placed your music file in the vanilla directory

For try if it's only work in "minecraft" .. for try what you said before :

Quote

But the issue is definitely with the name parameter in the sounds.json, because changing the file location to a vanilla song (minecraft:records/stal) works perfectly

 

Link to comment
Share on other sites

So, I guess, two things:
- our ogg music is badly encoded
- It's hard coded in the game

 

but it's clairly WTF.

UPDATE :

I tried to get a Minecraft music, and rename it, and its going on .. so I think the problem is the music file ..

 

:/

Edited by fanor
Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Unfortunately, your content contains terms that we do not allow. Please edit your content to remove the highlighted words below.
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Announcements



×
×
  • Create New...

Important Information

By using this site, you agree to our Terms of Use.