Résolu Forcer le texture pack dans le code
-
Bonjour,
une question me trotte dans la tête depuis 2ou3 jours, est ce que on peut via le code forcer le jeu a utiliser un ressource pack externe a la place de celui de base dans minecraft j’ai fait quelques recherche mais j’ai rien trouver de concluant sauf ca qui ne fonctionne que lors du deuxième démarrage du jeu donc ne fonctionne pas vraiment
if(event.getSide().isClient()){ Scanner scanner = new Scanner(new File("options.txt")); String line = null; while (scanner.hasNextLine()) { line = scanner.nextLine(); } System.out.println(line); scanner.close(); if(!line.contains("resourcePacks:["+"\"IcePlanetv.4.3.zip\""+"]")){ FileWriter writer = null; String texte = "resourcePacks:["+"\"IcePlanetv.4.3.zip\""+"]"; try{ writer = new FileWriter("options.txt", true); writer.write(texte,0,texte.length()); }catch(IOException ex){ ex.printStackTrace(); }finally{ if(writer != null){ writer.close(); } } } }
j ai aussi remarqué que dans les gamesettings il y a: Minecraft.getMinecraft().gameSettings.resourcePacks mais c’est une liste donc je pense pas pouvoir l’utiliser pour forcer le texture pack
une idée pour forcer ce texture pack a se sélectionner des lors du premier démarrage?
Merci d’avance
-
Ça ne fonctionne pas la seconde fois car il va y avoir une ligne du genre resourcePacks:[] ou resourcePacks:[“autre ressource pack ici”].
Donc il faudrait d’abord supprimer cette ligne puis ajouter la tienne. -
ca fonctionne seulement la 2eme fois la première fois il charge le texture pack par default et si je relance j’ai mon texture pack
-
Tu l’as mit dans init ou dans preInit ? Car à mon avis il charge l’option avant que tu chance le fichier option.
-
je l’ai mis dans le preinit et j’ai essayer dans le init aucune difference
-
Dans ce cas c’est que le fichier est chargé avant même preInit.
Donc faut modifier la liste.
Minecraft.getMinecraft().gameSettings.resourcePacks.clear();
Minecraft.getMinecraft().gameSettings.resourcePacks.add(“nom du fichier.zip”);
Je crois qu’il faut l’extension du fichier, à vérifier. -
ce coup ci il ne charge carrément pas le texture pack
-
Pourtant ça devrait bien être ça
Essaye de le mettre dans postInit ? -
toujours pas avec ou sans le .zip T_T
-
Normal, tu l’ajoutes à la liste sans le charger.
Fait Minecraft.getMinecraft().getResourcePackRepository.func_148527_a(list) où list est la liste contenant le fichier de ton resource pack. Normalement çà devrais marcher. Cette fonction va supprimer tous les resource packs et ajouter seulement ceux de la liste, et ensuite fait Minecraft.getMinecraft().refreshResources();
-
pour la liste tu parle de faire ca?:
j’ai pas tout suivit car ça ça fonctionne pas j’ai essayer d’autre truc mais toujours pas de texture pack a l’horizonMinecraft.getMinecraft().getResourcePackRepository().func_148527_a(Minecraft.getMinecraft().gameSettings.resourcePacks);
-
C’est çà, sauf qu’en paramètre tu mets ta liste avec dedans le nom de ton texture pack (le nom du fichier ou du dossier) et ensuite fait Minecraft.getMinecraft().refreshResources().
-
le problème c’est que si je remet le .add(“texturepack.zip”) c est plus une liste mais une boolean d’après éclipse ;S
http://puu.sh/iF6jg/fc9526c45b.png -
tu l’as mis à quoi le .add ?! Es-tu sûr d’avoir mis la liste en paramètre ? Et non laliste.add(“texturepack.zip”) ?
-
j ai essayer ca
Minecraft.getMinecraft().getResourcePackRepository().func_148527_a(Minecraft.getMinecraft().gameSettings.resourcePacks.add("texture.zip")); et ca Minecraft.getMinecraft().getResourcePackRepository().func_148527_a("texture.zip");
-
Normal, il veut une liste en paramètre, pas un string.
-
ArrayList arraylist = Lists.newArrayList(“texture.zip”);
Minecraft.getMinecraft().getResourcePackRepository().func_148527_a(arraylist);ducoup je veut plus un truc comme ca?
-
C’est çà, et ensuite tu fais un Minecraft.getMinecraft().refreshResources() et si çà marche toujours pas, tu peux remplacer la liste dans Minecraft.getMinecraft().gameSettingss.resourcePacks par la tienne.
-
java.lang.String cannot be cast to net.minecraft.client.resources.ResourcePackRepository$Entry
et j’ai essayer ça mais pas de texture pack mais ça crash pasArrayList arraylist = Lists.newArrayList("texture.zip"); Minecraft.getMinecraft().gameSettings.resourcePacks = arraylist; Minecraft.getMinecraft().refreshResources();
-
Qu’o soit bien d’accord, ton String, tu le mets dans la liste et c’est tout ! Et ensuite tu mets la liste aux bons endroits.