Exportation de tous les sons de Minecraft



  • Bonsoir.

    Je recherche actuellement s'il existerait un moyen facile pour exporter tous les sons de Minecraft vanilla 1.7.10 sans avoir installé quoi que ce soit après avoir remis à zéro mon dossier ".minecraft", je n'ai même pas touché à un seul bouton du menu après avoir atterri sur le menu de jeu après le téléchargement des ressources 1.7.10.

    Je n'ai malheureusement trouvé que la solution suivante : https://www.youtube.com/watch?v=RnlfELH8E-c. Le problème de cette dernière c'est qu'elle est très longue à faire, il a 2748 lignes dans le fichier donc bon je préférais éviter.

    J'ai bien aussi fais quelques recherches sur internet pour trouver les sons par défaut du jeu mais je n'ai rien trouvé. Donc si quelqu'un aurait une solution bien plus simple qu'en cherchant un à un les fichiers, je suis preneur ! Merci. 🙂


  • Administrateurs

    Salut,
    Par exporter, tu entends convertir tous les noms de fichier hashé vers le nom complet et la racine complet du fichier ?
    (en gros pour chaque fichier transformer le a564fcbd5fff598 en assets/minecraft/sounds/monson.ogg)



  • Oui c'est un peu cela. Enfaîte je voudrais reprendre tous les sons pour les ajouter à un texture pack, cela ferait le texture pack par défaut de Minecraft 1.7.10. Cela aurait pour but ensuite de me permettre de résoudre quelques manques des sons du texture pack de mon serveur mais surtout pour avoir quelque chose de plus propre je penses bien.

    En soit, on tombe sur des fichiers avec des noms compliqués comme "a564fcbd5fff598 " que tu as parlé. Il serait en gros but de le prendre puis de lui donner son réelle nom selon ce qui lui est attribué dans le fichier texte puis ensuite l'ajouter au texture pack. Il faudra juste configurer par la suite le fichier texte sounds mais ceci n'est pas grave.


  • Administrateurs

    Avec un script qui lit le fichier 1.7.10.json ça doit être faisable sans trop de problème.
    C'est ce que le launcher de mojang fait à la volé lors du lancement du jeu.



  • Je ne sais pas du tout comment faire de script ou quoi que ce soit. Je veux juste pouvoir récupérer tous les sons (en fichier .ogg si possible pour éviter de devoir tous les convertir) sans devoir les faire un par un, manuellement.


  • Administrateurs

    Ils sont déjà au bon format.
    Ils n'ont juste pas le bon nom.

    Tu as python sur ton pc ?
    Si oui je peux te faire un petit fichier py à exécuter pour renommer automatiquement les fichiers.



  • Je ne les vois pas en .ogg moi. Dans les propriétés ils sont marqué comme type de fichier : "Fichier", donc rien je supposes.

    Non je n'ai pas Python. Les renommer est une bonne chose pour gagner du temps, mais pour les récupérer ? Je vais devoir les récupérer un par un en grâce à leur nom "hash" ? Sur 2400 lignes, c'est très long…


  • Administrateurs

    Tu le vois pas le .ogg car Windows repère le type d'un fichier à son extension.
    Comme là il n'y a pas d'extension, il ne détecter rien.
    Sous linux le type de fichier est repéré avec le mimetype, donc il détecte que c'est un ogg même sans l'extension.
    Et oui c'est long de tout renommer, d'où l’intérêt de faire un petit programme qui le fait automatiquement.

    ÉDIT : voila :

    import json
    import os
    import shutil
    
    with open('indexes/1.7.10.json') as data_file:
        data = json.load(data_file)
    
    os.makedirs('extracted/assets')
    
    for f in data["objects"]:
        if not os.path.exists('extracted/assets/' + f.rsplit('/', 1)[0]):
            os.makedirs('extracted/assets/' + f.rsplit('/', 1)[0])
        print(f)
        shutil.copy2('objects/' + data["objects"][f]["hash"][:2] + '/' + data["objects"][f]["hash"], 'extracted/assets/' + f)
    

    Il te suffit de mettre ça dans un fichier .py et de mettre ce fichier dans le dossier .minecraft\assets et de l'exécuter avec python (https://www.python.org/downloads/)
    Il va créer un dossier extracted et tout mettre dedans.



  • Ton code copie aussi automatiquement tous les fichiers sans avoir besoin de les récupérer un à un et en plus il les renomme grâce à leur nom "hash" qui est répertorié dans le fichier texte 1.7.10 ?

    Si c'est cela, je testerais !


  • Administrateurs

    Oui c'est ça, il lit le fichier 1.7.10.json du dossier indexes pour tout reconstituer.



  • D'accord je te remercie. Je vais tester cela dès que possible !

    EDIT : Voilà qui est fait, merci de ton aide !