Résolu Faire une action quand on saute
-
Salut,
J’essaie d’apprendre à modder avec forge 1.12.2 et j’aimerais réussir à détecter et à faire une action lorsque le joueur saute. Pour cela, j’utilise l’événement LivingJumpEvent mais je ne sais pas comment ça fonctionne. J’ai essayé d’afficher un message, mais ce code ne fonctionne pas. Peut-être qu’il manque quelque chose ou qu’il y a une erreur.
Mon code :@SubscribeEvent public void jumpEvent(LivingJumpEvent e) { if(e.getEntity() instanceof EntityPlayer) { EntityPlayer player = (EntityPlayer) e.getEntity(); player.sendMessage(new TextComponentString("hi")); } }
Merci pour votre aide
-
Bonsoir,
Ce code semble bon.
Ton event est bien enregistré ? -
Comment faut-il que je l’enregistre ?
-
Il faut vérifier que ta class comporte l’annotation
@Mod.EventBusSubscriber(bus = Mod.EventBusSubscriber.Bus.MOD)
avant le début de ta classe ! -
Voilà ce que ça me fait
screen -
Attention à ne pas confondre les annotations de la 1.14 avec celles de la 1.12.2.
Il me semble que dans ta version il faut mettre ça : @Mod.EventBusSubscriber(modid = tonId) -
Ça ne fonctionne toujours pas… Je met sûrement mon code au mauvais endroit où dans la mauvaise classe. Je l’ai mis dans ma classe principale.
-
L’annotaion au desuus de ta classe est @Mod.EventBusSubscriber, pas besoin de mettre (modid = tonID)
après il faut aussi que tu déclare ta classe d’vent dans ta classe prinvipale avecpublic leNomDeTaClassePrincipale(){ MinecraftForge.EVENT_BUS.register(new leNomDeTaClasseD'Event()); }
Perso ca marche le msg:
-
Super ça fonctionne merci beaucoup pour votre aide
-
J’aimerais aussi pouvoir savoir quel block est en dessous le joueur. Pour cela je voulais utiliser
Block blockUnderneath = player.worldObj.getBlock((int) player.posX, (int) player.posY - 1, (int) player.posZ) ;
Mais il semble que cela ne fonctionne plus en 1.12.2
Si quelqu’un a une idée, merci. -
BlockState state = player.world.getBlockState(new BlockPos(player).down());
-
Et comment je pourrais savoir et effectuer une action si le block sous moi est de la stone par exemple ?
-
Tu vérifies que state.getBlock() == Blocks.STONE
-
Super, ça fonctionne, merci beaucoup pour votre aide