Résolu Forcer le texture pack dans le code
-
j’ai fair exactement ca:
ArrayList arraylist = Lists.newArrayList(“texture.zip”);
Minecraft.getMinecraft().getResourcePackRepository().func_148527_a(arraylist);
Minecraft.getMinecraft().refreshResources(); -
Tu ne peux pas faire comme çà car Lists est une classe de google, or Minecraft veut une liste de java.
-
pourtant le site du zero partange ce code pour les liste
import java.util.ArrayList; public class Test { public static void main(String[] args) { ArrayList al = new ArrayList(); al.add(12); al.add("Une chaîne de caractères !"); al.add(12.20f); al.add('d');
j ai donc essayer ca
ArrayList list = new ArrayList(); list.add("texture.zip"); Minecraft.getMinecraft().getResourcePackRepository().func_148527_a(list);
toujours le meme crash
-
Ce code ci est bon, quel est le crash ? Tu n’as jamais parlé de crash.
-
java.lang.ClassCastException: java.lang.String cannot be cast to net.minecraft.client.resources.ResourcePackRepository$Entry
crash report complet http://puu.sh/iF8Y6/7f73006635.txt -
à quelle ligne ?
-
sur cette ligne
ligne 32 ==> Minecraft.getMinecraft().refreshResources(); -
Envoi ton code.
-
public void PreInit(FMLPreInitializationEvent event) { ArrayList list = new ArrayList(); list.add("texture.zip"); Minecraft.getMinecraft().getResourcePackRepository().func_148527_a(list); Minecraft.getMinecraft().refreshResources(); }
-
Effectivement, ce n’est pas un String qu’il faut fournir mais un ResourcePackRepository.Entry, je te laisse regarder comment c’est géré.
-
dans quelle classe?
-
La classe ResourcePackRepository.Entry
-
Le problème c est que je vois pas comment utiliser cette classe tout est private dedans T_T
a part récupérer le nom du texture pack / sa description on peut rien en faire
-
Peut être en créant une nouvelle instance ?
-
c est bien ce code donc je doit m’inspirer pour créé mon entry?
while (iterator1.hasNext())
{
ResourcePackRepository.Entry entry = (ResourcePackRepository.Entry)iterator1.next();if (entry.getResourcePackName().equals(s))
{
this.repositoryEntries.add(entry);
break;
}
} -
Je tire mon chapeau pour ce soir j’arrive plus a réfléchir je réessaye demain meme si a mon avis ce que tu voulait me dire etait plus du coter de cette ligne:
ResourcePackRepository.Entry entry = new ResourcePackRepository.Entry(file1, null);Mais la je suis trop fatiguer pour lire le code assez bien pour comprendre tout a demain et merci du coup de main
-
Non car ce code ne fait que lire les entrées. Il faut chercher là où elle est écrite.
-
je comprend pas du tout la classe ResourcePackRepository.Entry je comprend des morceau mais pas la totalité du coup je comprend pas comment l’utiliser pour set le texture pack j’imagine que il faut utiliser la méthode
public void updateResourcePack() throws IOExceptionmais je vois pas comment
-
Quelqu’un a une idée du code a utiliser pour ResourcePackRepository.Entry?
parce que je galère bien ma race et je comprend pas comment marche la classe et je trouve pas de documentation sur internet
les seul truc que j’ai put trouver utilise cette classe pour vérifier la présence du ressource pack -
Bon j ai relut la classe un peu après m’être vider la tête et j’ai essayer de faire ca:
ResourcePackRepository.Entry entry = (ResourcePackRepository.Entry)new Entry(File)); //et ca aussi ResourcePackRepository.Entry entry = (ResourcePackRepository.Entry)new Entry(File, object)); //en remplacant les deux valeur
mais il me dit que le constructeur n’est pas visible et je vois pas qu’est ce que je pourrait utiliser d’autre dans cette classe pour créé une entry ;c