Problème ClientTick Pluie Acide
-
java.lang.NullPointerExceptionVérifie que toutes tes variables sont initialisées.
La preuve :
La ligne 53 possède une erreur, et sur cette ligne :
return null; -
C’est à dire ?
-
Au lieu de return null, change en quelque chose.
Juste “” suffit, mais ne laisse pas le return null, car sinon, le client va demander le label, on va lui dire qu’il est null : Le client pointe vers null et cause une erreur nullPointerException
-
Je me suis apperçu que l’error log est faut je corrige ça, parce-que à aucun moment il n’y a de “retrun null;” donc voilà le problème
-
Si, ici :
@Override public String getLabel() {return null;}Sinon plutôt qu’utiliser un tickHandler qui n’agit que sur le joueur, j’utiliserai plutôt l’event LivingUpdateEvent qui agit sur toutes les entités vivantes. Également, tu as oublié de vérifier que l’entité voit le ciel. (il devrait avoir ça dans le code de l’enderman).
Et pour finir, dégât = serveur et pas client, donc faut pas utiliser un tickhandler de type client mais de type serveur (ou l’event que je t’ai proposé).
-
Un event serait en effet plus approprié.
De plus, j’ai bien dis que c’était ligne 53 qu’il y avait un return null.
Enfin, j’ai simplement penser a corriger le crash et non le principe

-
Si je met “return false;”, il me demande de mettre en boolean, et même avec le boolean j’ai une erreur
-
Normal, il te demande de retourner un String, non un boolean.
Mets simplement deux guillemets : “”
-
j’ai la même erreur même avec les guillemets donc, robin tu parlé d’un event “LivingUpdateEvent” comment je fait ?
genre ?
public onLivingUpdateEvent (LivingUpdateEvent livingUpdateEvent)
{
} -
Bon j’y arrive pas, ce que je fait ne marche pas ou crash.
Je l’ai mis dans un Ticks pour le serveur “ServerTicks.java” je l’ai bien déclaré dans commonproxy mais marche pas -
Fait avec l’event
-
Comme tout les event, dans ta classe principale tu enregistre la classe ou tu as l’event, et cette classe du mets le void avec @ForgeSubscribe (cf : tutoriel sur le son ou l’event drop).
-
Bien ! J’avance ! Mais j’ai une nouvelle erreur !
J’ai ce code::::
package zeamateis.viruz.manage; import net.minecraft.entity.EntityLiving; import net.minecraft.entity.player.EntityPlayer; import net.minecraftforge.event.EventPriority; import net.minecraftforge.event.ForgeSubscribe; import net.minecraftforge.event.entity.living.LivingEvent; public class LivingEventManager { @ForgeSubscribe(priority = EventPriority.NORMAL) public void LivingUpdateEvent(LivingEvent event) { if(event.entity instanceof EntityPlayer) { if (event.entity.isWet()) { event.entity.attackEntityFrom(DamageSourcesManager.acidRain, 1); } } } }:::
et cette erreur:
-
LivingUpdateEvent pas LivingEvent :
package zeamateis.viruz.manage; import net.minecraft.entity.EntityLiving; import net.minecraft.entity.player.EntityPlayer; import net.minecraftforge.event.EventPriority; import net.minecraftforge.event.ForgeSubscribe; import net.minecraftforge.event.entity.living.LivingEvent.LivingUpdateEvent; public class LivingEventManager { @ForgeSubscribe(priority = EventPriority.NORMAL) public void LivingUpdateEvent(LivingUpdateEvent event) { if(event.entity instanceof EntityPlayer) { if (event.entity.isWet()) { event.entity.attackEntityFrom(DamageSourcesManager.acidRain, 1); } } } }Juste, pourquoi event.entity.isWet() et pas event.entityLiving.worldObj.isRaining() ?
-
Merci ! ça fonctionne ! quelle bête erreur ! Merci
-
En effet, isWet() peut aussi compter pour l’eau ( Comme les endermans ) et donc faire que l’eau soit acide.
-
Puis-je supprimer ce post ?
-
Pourquoi le supprimer? D’autres personnes peuvent en avoir besoin!
-
Si ton problème est résolu, passe le résolu mais ne le supprime pas.
-
Bien ! mon problème est résolu !
