24 mai 2017, 20:18

Bonjour,

C’est encore moi et je suis encore embêté par les threads.
Enfin pas vraiment, il y a juste un fonctionnement que je ne comprends pas trop.

À la réception d’un paquet côté client, je voudrais récupérer le nom du joueur correspondant au client. Pour ça je suis tenté de faire ceci :

Minecraft.getMinecraft().player.getName();

Sauf que sur le thread Netty Client IO l’objet player est null. Du coup je passe par le Client thread :

Minecraft.getMinecraft().addScheduledTask (new Runnable(){

     @Override
     public void run (){
          Minecraft.getMinecraft().player.getName();
     }
});

Et ça fonctionne très bien !
Ce que je ne comprends pas c’est pourquoi player est null sur le thread Netty Client IO mais qu’il est instancié sur le Client thread alors que player appartient à l’objet theMinecraft qui lui est static donc commun au deux threads.

Merci.