Non résolu 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
-
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 ?