Jump to content

Music Discs Adding Music to the disc.


phase

Recommended Posts

Hey there!

 

I was wondering how to add music to a music disc.

I already have the disc made and it works fine in-game.

When I put it in the Jukebox, it just doesn't play music.

 

Code:

 

 

 

My "ItemRecord" File that I made to add some custom things.

package certus.phase.com.music;
import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

import certus.phase.com.Certus;
import net.minecraft.block.Block;
import net.minecraft.block.BlockJukeBox;
import net.minecraft.creativetab.CreativeTabs;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.item.EnumRarity;
import net.minecraft.item.Item;
import net.minecraft.item.ItemStack;
import net.minecraft.util.Icon;
import net.minecraft.world.World;

public class EthericRecord extends Item
{

    /** List of all record items and their names. */
    private static final Map records = new HashMap();

    /** The name of the record. */
    public final String recordName;
    
    /** The Author of the record.*/
    public final String authorName;


    public EthericRecord(int id, String songTitle, String songAuthor)
    {
        super(id);
        this.recordName = songTitle;
        this.authorName = songAuthor;
        this.maxStackSize = 1;
        this.setCreativeTab(Certus.nirtosTab);
        records.put(songTitle, this);
    }

    @SideOnly(Side.CLIENT)

    /**
     * Gets an icon index based on an item's damage value
     */
    public Icon getIconFromDamage(int par1)
    {
        return this.itemIcon;
    }

    /**
     * Callback for item usage. If the item does something special on right clicking, he will have one of those. Return
     * True if something happen and false if it don't. This is for ITEMS, not BLOCKS
     */
    public boolean onItemUse(ItemStack par1ItemStack, EntityPlayer par2EntityPlayer, World par3World, int par4, int par5, int par6, int par7, float par8, float par9, float par10)
    {
        if (par3World.getBlockId(par4, par5, par6) == Block.jukebox.blockID && par3World.getBlockMetadata(par4, par5, par6) == 0)
        {
            if (par3World.isRemote)
            {
                return true;
            }
            else
            {
                ((BlockJukeBox)Block.jukebox).insertRecord(par3World, par4, par5, par6, par1ItemStack);
                par3World.playAuxSFXAtEntity((EntityPlayer)null, 1005, par4, par5, par6, this.itemID);
                --par1ItemStack.stackSize;
                return true;
            }
        }
        else
        {
            return false;
        }
    }

    @SideOnly(Side.CLIENT)

    /**
     * allows items to add custom lines of information to the mouseover description
     */
    public void addInformation(ItemStack par1ItemStack, EntityPlayer par2EntityPlayer, List par3List, boolean par4)
    {
	par3List.add("~Etheric Mod Record~");
	par3List.add("Artist: " + this.getRecordAuthor());  
        par3List.add("Song: " + this.getRecordTitle());
        
    }

    @SideOnly(Side.CLIENT)

    /**
     * Return the title for this record.
     */
    public String getRecordTitle()
    {
        return this.recordName;
    }
    
    
    @SideOnly(Side.CLIENT)

    /**
     * Return the title for this record.
     */
    public String getRecordAuthor()
    {
        return this.authorName;
    }

    @SideOnly(Side.CLIENT)

    /**
     * Return an item rarity from EnumRarity
     */
    public EnumRarity getRarity(ItemStack par1ItemStack)
    {
        return EnumRarity.rare;
    }

    @SideOnly(Side.CLIENT)

    /**
     * Return the record item corresponding to the given name.
     */
    public static EthericRecord getRecord(String par0Str)
    {
        return (EthericRecord)records.get(par0Str);
    }
}

 

 

 

 

 

The Disc File

package certus.phase.com.nirtos;

import java.util.List;

import certus.phase.com.Certus;
import certus.phase.com.Info;
import certus.phase.com.music.EthericRecord;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.item.Item;
import net.minecraft.item.ItemRecord;
import net.minecraft.item.ItemStack;

public class NirtosDisc extends EthericRecord {

public NirtosDisc(int id, String songTitle, String songAuthor) {
super(id, songTitle, songAuthor);
setCreativeTab(Certus.nirtosTab);
setUnlocalizedName("NirtosDisc");
func_111206_d(Info.TEX.toLowerCase() + ":" + "Nirtos_Disc");
         }

}

 

 

 

And yes, I've tried this:

[lmgtfy]minecraft forge music disc 1.6.2[/lmgtfy]

 

Link to comment
Share on other sites

I had the same issue till yesterday,solution is pretty simple.

 

Go in your Main Class and add this :

@EventHandler
public void preInit(FMLPreInitializationEvent event)
{
MinecraftForge.EVENT_BUS.register(new SoundLoader());
MinecraftForge.EVENT_BUS.register(this);
}

 

This tell the game to Load the SoundLoader class while in PreInit phase.

 

Then create the SoundLoader.class and paste this code :

package DubGun;

import net.minecraft.client.audio.SoundManager;
import net.minecraftforge.client.event.sound.SoundLoadEvent;
import net.minecraftforge.event.ForgeSubscribe;
import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly;

public class EventSounds {

@SideOnly(Side.CLIENT)
@ForgeSubscribe
public void onSoundsLoaded(SoundLoadEvent event)
{

SoundManager manager = event.manager;

manager.soundPoolStreaming.addSound("<your mod name lowercased>:unlocalizedname.ogg");

}
}

Your record music file must be in /assets/modname_lowercased/records

It must be a .ogg file.

 

In the main class,in 'setUnlocalizedName' set a name.

Then go in /assets/modname_lowercased/records and rename your .ogg file THE SAME AS THE UNLOCALIZED NAME.

(If my unlocalizedname is 'dumbexample' the .ogg file's name MUST be dumbexample.ogg)

 

Then go in the SoundLoader class

In <your mod name lowercased> write the same as the folder the folder records is in. (Records is in mac_dumbexample, then write mac_dumbexample)

In unlocalizedname write the same unlocalizedname you used for your record then add .ogg at the end.

 

 

 

Link to comment
Share on other sites

URG!!! I can't seem to get it to work... :P

 

public class SoundLoader {

@SideOnly(Side.CLIENT)
@ForgeSubscribe
public void onSoundsLoaded(SoundLoadEvent event)
{

SoundManager manager = event.manager;

manager.soundPoolStreaming.addSound(Info.TEX + ":NirtosDisc.ogg");
manager.soundPoolStreaming.addSound(Info.TEX + ":DiscVechs.ogg");
manager.soundPoolStreaming.addSound(Info.TEX + ":DiscBTeam.ogg");

}
}

 

that is my SoundLoader

 

 

public class NirtosDisc extends ItemRecord {

public NirtosDisc(int id, String songTitle, String songAuthor) {
super(id, songTitle);
setCreativeTab(Certus.nirtosTab);
setUnlocalizedName("NirtosDisc");
func_111206_d(Info.TEX.toLowerCase() + ":" + "Nirtos_Disc");
         }
public class SoundManager {
	   @SideOnly(Side.CLIENT)
       @ForgeSubscribe
    public void onSoundsLoaded(SoundLoadEvent event)
    {
        net.minecraft.client.audio.SoundManager manager = event.manager;
             manager.soundPoolStreaming.addSound(Info.TEX + ":test");
            }
    }



}

that is my disc.

 

 

 

When I put the disc in the jukebox, it just doesn't play any sound.

 

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



  • Recently Browsing

    • No registered users viewing this page.
  • Posts

    • Then how am I going to play the mod in my server? Because I put the mod in my mods folder, but the mod item does not show up.
    • Selamat datang di RP77, di mana petualangan slot online bertemu dengan kesempatan untuk meraih keberuntungan besar! Dalam dunia yang memikat ini, RP77 telah menjadi destinasi utama bagi para pencari harta karun, menawarkan sensasi tak terlupakan dan kemungkinan jackpot yang mudah setiap hari. Di RP77, setiap putaran adalah peluang untuk memicu keajaiban. Dengan koleksi slot yang memikat, mulai dari tema fantasi yang mempesona hingga slot klasik yang menghadirkan nostalgia, pemain diundang untuk merasakan sensasi kemenangan luar biasa dengan peluang x15000 yang menggoda. Para pemain tidak hanya bermain untuk kesenangan; mereka bermain untuk mengubah hidup mereka. Jackpot yang sering terjadi membawa euforia dan kegembiraan tak terduga, menciptakan momen yang akan dikenang sepanjang masa. Setiap hari di RP77 adalah hari untuk mengukir sejarah baru, dengan setiap putaran gulungan membawa potensi kemenangan yang tak terduga. Namun, RP77 bukan hanya tentang kemenangan besar; itu adalah tentang pengalaman bermain yang luar biasa. Dengan grafis yang menakjubkan dan efek suara yang memukau, setiap putaran adalah perjalanan visual yang memikat dan mempesona. Jangan lewatkan kesempatan untuk meraih keberuntungan besar di RP77! Bergabunglah dengan komunitas para pemain yang berani dan nikmati sensasi kemenangan x15000 yang akan mengubah hidup Anda. Mari bergabung di RP77, di mana keajaiban menunggu di setiap putaran, dan kemenangan besar menanti untuk diungkapkan
    • Ngamenslot adalah pilihan terbaik bagi Anda yang mencari situs slot dengan deposit via Bank Mandiri yang terbaik. Berikut adalah beberapa alasan mengapa Anda harus memilih Ngamenslot: Deposit via Bank Mandiri Kami menyediakan layanan deposit yang mudah dan cepat melalui Bank Mandiri, salah satu bank terkemuka di Indonesia. Dengan sistem yang terpercaya dan aman, Anda dapat melakukan transaksi dengan nyaman dan tanpa khawatir. Bonus Besar hingga x500 Kami menawarkan bonus besar hingga x500 untuk setiap pemain yang bergabung dan melakukan deposit di Ngamenslot. Bonus ini dapat meningkatkan peluang Anda untuk meraih kemenangan besar dan mendapatkan pengalaman bermain yang lebih mengasyikkan. Koleksi Slot Terlengkap Ngamenslot menyajikan koleksi slot terlengkap dari penyedia terkemuka di industri. Dari slot klasik hingga slot modern dengan fitur-fitur inovatif, kami memiliki semua yang Anda butuhkan untuk pengalaman bermain yang menghibur dan menguntungkan.   LINK daftar di sini  > > > KLIK di sini LINK daftar di sini  > > > KLIK di sini
    • Alibabaslot adalah pilihan terbaik bagi Anda yang mencari situs ternama dengan akun pro Italia. Berikut adalah beberapa alasan mengapa Anda harus memilih Alibabaslot: Reputasi Ternama Kami memiliki reputasi yang baik sebagai situs ternama dalam industri perjudian online. Dengan layanan yang terpercaya dan kualitas permainan yang tinggi, kami telah menjadi pilihan utama bagi para pemain slot di seluruh dunia. Akun Pro Italia Kami menyediakan akun pro Italia yang memberikan pengalaman bermain yang luar biasa. Dengan berbagai fitur unggulan dan promosi menarik, setiap pemain dapat merasakan sensasi bermain yang tak terlupakan.   Link Daftar di sini  > > > KLIK INI
    • Etumax Royal Honey | VIP Royal Honey Etumax | Royal Honey For Men Regal Honey helps you last longer in bed by expanding male imperatives. This astonishing nectar item has just normal biomolecules of Bee hatching, and supplements. It concentrates on what is expected to help your perseverance, stamina, and capacity to drag out your sex time.  https://shoppakistan.pk/etumax-royal-honey-in-pakistan 
  • Topics

×
×
  • Create New...

Important Information

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