Posted April 18, 20187 yr There will be a lot of code shown here because my mod is very spread out. I have been making this fairly small mod and i was trying to mess with item records which i am unfamiliar with, my code will be shown below for just about every bit of code belonging to this item. I have seem to get everything working except the sound that i am trying to play, does not seem to play, in-fact it doesn't even show "Now Play ____ Music Disc". If anyone see's the problem please help me solve it. Thank you in advance. ItemInit.class package xtekblue.mod.init; import java.util.ArrayList; import java.util.List; import net.minecraft.init.SoundEvents; import net.minecraft.item.Item; import xtekblue.mod.objects.items.ItemBase; import xtekblue.mod.objects.items.ItemRecord; import xtekblue.mod.util.handlers.SoundsHandler; public class ItemInit { public static final List<Item> ITEMS = new ArrayList<Item>(); public static final Item MUD_BALL = new ItemBase("mud_ball"); public static final Item RECORD_SAD = new ItemRecord("sad", SoundsHandler.RECORD_SAD); //public static final Item MIX_REDSTONE_GLOWSTONE = new ItemBase("mix_redstone_glowstone"); //public static final Item EMERALD_SWORD = new ItemSwordBase("emerald_sword", ItemBase.ToolMaterialFXI.EMERALD); } ItemRecord.class package xtekblue.mod.objects.items; import java.util.List; import java.util.Map; import javax.annotation.Nullable; import com.google.common.collect.Maps; import net.minecraft.block.BlockJukebox; import net.minecraft.block.state.IBlockState; import net.minecraft.client.util.ITooltipFlag; import net.minecraft.creativetab.CreativeTabs; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.init.Blocks; import net.minecraft.item.EnumRarity; import net.minecraft.item.Item; import net.minecraft.item.ItemStack; import net.minecraft.stats.StatList; import net.minecraft.util.EnumActionResult; import net.minecraft.util.EnumFacing; import net.minecraft.util.EnumHand; import net.minecraft.util.SoundEvent; import net.minecraft.util.math.BlockPos; import net.minecraft.util.text.translation.I18n; import net.minecraft.world.World; import net.minecraftforge.fml.relauncher.Side; import net.minecraftforge.fml.relauncher.SideOnly; public class ItemRecord extends ItemBase { private static final Map<SoundEvent, ItemRecord> RECORDS = Maps.<SoundEvent, ItemRecord>newHashMap(); private final SoundEvent sound; private final String displayName; public ItemRecord(String name, SoundEvent soundIn) { super(name); this.displayName = "XXX - SAD"; this.sound = soundIn; this.maxStackSize = 1; this.setCreativeTab(CreativeTabs.MISC); RECORDS.put(this.sound, this); } /** * Called when a Block is right-clicked with this Item */ public EnumActionResult onItemUse(EntityPlayer player, World worldIn, BlockPos pos, EnumHand hand, EnumFacing facing, float hitX, float hitY, float hitZ) { IBlockState iblockstate = worldIn.getBlockState(pos); if (iblockstate.getBlock() == Blocks.JUKEBOX && !((Boolean)iblockstate.getValue(BlockJukebox.HAS_RECORD)).booleanValue()) { if (!worldIn.isRemote) { ItemStack itemstack = player.getHeldItem(hand); ((BlockJukebox)Blocks.JUKEBOX).insertRecord(worldIn, pos, iblockstate, itemstack); worldIn.playEvent((EntityPlayer)null, 1010, pos, Item.getIdFromItem(this)); itemstack.shrink(1); player.addStat(StatList.RECORD_PLAYED); } return EnumActionResult.SUCCESS; } else { return EnumActionResult.PASS; } } /** * allows items to add custom lines of information to the mouseover description */ @SideOnly(Side.CLIENT) public void addInformation(ItemStack stack, @Nullable World worldIn, List<String> tooltip, ITooltipFlag flagIn) { tooltip.add(this.getRecordNameLocal()); } @SideOnly(Side.CLIENT) public String getRecordNameLocal() { return I18n.translateToLocal(this.displayName); } /** * Return an item rarity from EnumRarity */ public EnumRarity getRarity(ItemStack stack) { return EnumRarity.RARE; } @Nullable @SideOnly(Side.CLIENT) public static ItemRecord getBySound(SoundEvent soundIn) { return RECORDS.get(soundIn); } @SideOnly(Side.CLIENT) public SoundEvent getSound() { return this.sound; } } SoundsHandler.class package xtekblue.mod.util.handlers; import net.minecraft.util.ResourceLocation; import net.minecraft.util.SoundEvent; import net.minecraftforge.fml.common.registry.ForgeRegistries; import xtekblue.mod.util.Reference; public class SoundsHandler { public static SoundEvent RECORD_SAD; public static void registerSounds() { RECORD_SAD = registerSound("record.sad"); } private static SoundEvent registerSound(String name) { ResourceLocation location = new ResourceLocation(Reference.MODID, name); SoundEvent event = new SoundEvent(location); event.setRegistryName(name); ForgeRegistries.SOUND_EVENTS.register(event); return event; } } My .ogg file is saved in "assets.bx.sounds.record" and my sounds.json is saved in "assets.bx". Here is my sounds.json { "record.sad": { "category": "record", "subtitle": "record.sad", "sounds": [{ "name": "bx:record/sad", "stream": true}] } }
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.