Jouer un son custom .ogg



  • Bonjour,

    J'ai un problème pour jouer un son custom. J'ai toujours l'erreur suivante quand j'effectue la commande : "Une erreur est survenue"

    J'ai placé mon **music.ogg **dans ce chemin : "resources/assets/gtalifemod/sounds/music.ogg"
    J'ai placé mon fichier sounds.json ici : "resources/assets/gtalifemod/sounds.json"

    Mon ModID est "gtalifemod"

    Voici le contenu de sounds.json :

    {
    "music": {"category": "ambient", "sounds" : ["music"]}
    }
    

    Voici la manière dont je lance le son via un packet :

    package fr.gtalife.network;
    
    public class PacketSon implements IMessage {
    
    private String text;
    
    public PacketSon() { }
    
    public PacketSon(String text) {
       this.text = text;
    }
    
    @Override
    public void fromBytes(ByteBuf buf) {
    text = ByteBufUtils.readUTF8String(buf);
    }
    
    @Override
    public void toBytes(ByteBuf buf) {
    ByteBufUtils.writeUTF8String(buf, text);
    }
    
    public static class Handler implements IMessageHandler <PacketSon, IMessage>{
    
    @SideOnly(Side.CLIENT)
    @Override
    public IMessage onMessage(PacketSon message, MessageContext ctx) {
    Minecraft.getMinecraft().getSoundHandler().playSound(PositionedSoundRecord.func_147673_a(new ResourceLocation("gtalifemod:music")));
       return null;
    }
    }
    }
    
    

    Merci d'avance



  • "j'effectue la commande : "Une erreur est survenue""

    J'en déduis que tu as utilisé une commande, pourrais-tu en donner la classe et surtout l'erreur (détaillée dans le log).
    PS : tu n'as pas obligé d'utiliser un packet pour lancer ton son, il existe des méthodes côté serveur pour ça ^^



  • Oui mais c'est juste un essai pour le moment.

    Classe de la commande :

    package fr.gtalife.commands;
    
    public class CommandSon extends CommandBase
    {
    
    public static String Message;
    
    @Override
    public String getCommandName()
    {
    return "son";
    }
    
    @Override
    public int getRequiredPermissionLevel()
    {
       return 0;
    }
    
    @Override
    public boolean canCommandSenderUseCommand(ICommandSender sender) {
    return true;
    }
    
    @Override
    public String getCommandUsage(ICommandSender sender)
    {
    return null;
    }
    
    @Override
    public void processCommand(ICommandSender sender, String[] argString)
    {
       if(sender instanceof EntityPlayer) {
        GTALife.network.sendTo(new PacketSon(), (EntityPlayerMP) sender);
       }
    
    }
    }
    

    L'erreur de la console :

    [18:31:37] [Server thread/ERROR]: Couldn't process command: 'son'
    java.lang.ArrayIndexOutOfBoundsException: 0
    at fr.gtalife.commands.CommandSon.processCommand(CommandSon.java:48) ~[CommandSon.class:?]
    at net.minecraft.command.CommandHandler.executeCommand(CommandHandler.java:96) [CommandHandler.class:?]
    at net.minecraft.network.NetHandlerPlayServer.handleSlashCommand(NetHandlerPlayServer.java:788) [NetHandlerPlayServer.class:?]
    at net.minecraft.network.NetHandlerPlayServer.processChatMessage(NetHandlerPlayServer.java:764) [NetHandlerPlayServer.class:?]
    at net.minecraft.network.play.client.C01PacketChatMessage.processPacket(C01PacketChatMessage.java:47) [C01PacketChatMessage.class:?]
    at net.minecraft.network.play.client.C01PacketChatMessage.processPacket(C01PacketChatMessage.java:68) [C01PacketChatMessage.class:?]
    at net.minecraft.network.NetworkManager.processReceivedPackets(NetworkManager.java:241) [NetworkManager.class:?]
    at net.minecraft.network.NetworkSystem.networkTick(NetworkSystem.java:182) [NetworkSystem.class:?]
    at net.minecraft.server.MinecraftServer.updateTimeLightAndEntities(MinecraftServer.java:726) [MinecraftServer.class:?]
    at net.minecraft.server.MinecraftServer.tick(MinecraftServer.java:614) [MinecraftServer.class:?]
    at net.minecraft.server.integrated.IntegratedServer.tick(IntegratedServer.java:118) [IntegratedServer.class:?]
    at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:485) [MinecraftServer.class:?]
    at net.minecraft.server.MinecraftServer$2.run(MinecraftServer.java:752) [MinecraftServer$2.class:?]
    [18:31:37] [Client thread/INFO]: [CHAT] Cette commande a échoué suite à une erreur inconnue
    

  • Moddeurs confirmés Rédacteurs Administrateurs

    Salut,
    Quel est le contenu de la ligne 48 de CommandSon ?

    Aussi, il serait bien de mettre la bonne balise de version et non "Toutes les versions", afin qu'on puisse correctement t'aider (car en fonction de ta version il n'y a pas les mêmes choses à faire).



  • Résolu ?


Log in to reply