MFF

    Minecraft Forge France
    • Récent
    • Mots-clés
    • Populaire
    • Utilisateurs
    • Groupes
    • Forge Events
      • Automatique
      • Foncé
      • Clair
    • S'inscrire
    • Se connecter

    Problème de lit

    Planifier Épinglé Verrouillé Déplacé Résolu 1.8.x
    1.8
    46 Messages 4 Publieurs 8.2k Vues 1 Watching
    Charger plus de messages
    • Du plus ancien au plus récent
    • Du plus récent au plus ancien
    • Les plus votés
    Répondre
    • Répondre à l'aide d'un nouveau sujet
    Se connecter pour répondre
    Ce sujet a été supprimé. Seuls les utilisateurs avec les droits d'administration peuvent le voir.
    • SCAREXS Hors-ligne
      SCAREX
      dernière édition par

      1.8 11.14.3.1450 : fonctionne, le problème vient de toi. As-tu bien enregistré l’événement avec MinecraftForge et non FMLComonHandler ?

      Je te renvois le code utilisé :

      @SubscribeEvent
      public void onLivingDeath(LivingDeathEvent event) {
      if (event.entityLiving instanceof EntityPlayer) {
      EntityPlayer player = (EntityPlayer) event.entityLiving;
      
      for (int i = 0; i < player.inventory.getSizeInventory(); i++) {
      if (player.inventory.getStackInSlot(i) != null && player.inventory.getStackInSlot(i).getItem() == Items.apple) {
      BlockPos pos = player.getPosition();
      player.getEntityData().setBoolean("ring", true);
      player.getEntityData().setInteger("posX", pos.getX());
      player.getEntityData().setInteger("posY", pos.getY());
      player.getEntityData().setInteger("posZ", pos.getZ());
      }
      }
      }
      }
      
      @SubscribeEvent
      public void onEntitySpawn(PlayerEvent.Clone event) {
      if (event.wasDeath) {
      EntityPlayer player = event.original;
      if (player.getEntityData().getBoolean("ring")) {
      event.entityPlayer.addPotionEffect(new PotionEffect(Potion.fireResistance.getId(), 800, 0, true, false));
      event.entityPlayer.setPosition(player.getEntityData().getInteger("posX"), player.getEntityData().getInteger("posY"), player.getEntityData().getInteger("posZ"));
      }
      }
      }
      

      Site web contenant mes scripts : http://SCAREXgaming.github.io

      Pas de demandes de support par MP ni par skype SVP.
      Je n'accepte sur skype que l…

      1 réponse Dernière réponse Répondre Citer 0
      • EmotionFoxE Hors-ligne
        EmotionFox
        dernière édition par

        Oui heureusement que oui ^^’ Et j’ai fais du copier coller, mais vraiment, pourtant quand on définie un point de spawn avec le lit et qu’ensuite on essaye de ce suicider avec la bague dans l’inventaire rien à faire la téléportation ne fonctionne pas :C

        Ps: J’ai update vers la dernière version de forge mais même dans l’autre aussi ça ne marchais pas alors il doit vraiment y avoir un problème quelque pars.

        1 réponse Dernière réponse Répondre Citer 0
        • SCAREXS Hors-ligne
          SCAREX
          dernière édition par

          Effectivement, j’ai regardé un peu le code, et en fait le clone est appelé après la téléportation au spawn mais avant la téléportation au lit.

          La seule solution que j’ai pu trouvé c’est d’utiliser le PlayerRespawnEvent de fml qui est appelé après, le seul problème c’est que les NBT tags ne sont pas clonés avec, il faut donc utiliser le clone event pour copier les NBT dans les tags du nouveau joueur pour ensuite les utiliser dans le PlayerRespawnEvent.

          Site web contenant mes scripts : http://SCAREXgaming.github.io

          Pas de demandes de support par MP ni par skype SVP.
          Je n'accepte sur skype que l…

          1 réponse Dernière réponse Répondre Citer 0
          • robin4002R Hors-ligne
            robin4002 Moddeurs confirmés Rédacteurs Administrateurs
            dernière édition par

            PlayerRespawnEvent vient aussi de Forge non ?

            1 réponse Dernière réponse Répondre Citer 0
            • SCAREXS Hors-ligne
              SCAREX
              dernière édition par

              Euh en tout cas il est dans le package de fml.

              Site web contenant mes scripts : http://SCAREXgaming.github.io

              Pas de demandes de support par MP ni par skype SVP.
              Je n'accepte sur skype que l…

              1 réponse Dernière réponse Répondre Citer 0
              • EmotionFoxE Hors-ligne
                EmotionFox
                dernière édition par

                Alors du coup j’ai essayé ça :

                public class EmotionLifeEvent
                {
                @SubscribeEvent
                public void onLivingDeath(LivingDeathEvent e)
                {
                if(e.entityLiving instanceof EntityPlayer)
                {
                EntityPlayer player = (EntityPlayer)e.entityLiving;
                
                for(int i = 0; i < player.inventory.getSizeInventory(); i++)
                {
                if(player.inventory.getStackInSlot(i) != null && player.inventory.getStackInSlot(i).getItem() == EmotionItems.purpuraRing)
                {
                BlockPos pos = player.getPosition();
                player.getEntityData().setBoolean("ring", true);
                player.getEntityData().setInteger("posX", pos.getX());
                player.getEntityData().setInteger("posY", pos.getY());
                player.getEntityData().setInteger("posZ", pos.getZ());
                }
                }
                }
                }
                
                @SubscribeEvent
                public void onEntitySpawn(PlayerEvent.Clone e)
                {
                if(e.wasDeath)
                {
                EntityPlayer player = e.original;
                
                if(player.getEntityData().getBoolean("ring"))
                {
                e.entityPlayer.getEntityData().setBoolean("ring", player.getEntityData().getBoolean("ring"));
                e.entityPlayer.getEntityData().setInteger("posX", player.getEntityData().getInteger("posX"));
                e.entityPlayer.getEntityData().setInteger("posY", player.getEntityData().getInteger("posY"));
                e.entityPlayer.getEntityData().setInteger("posZ", player.getEntityData().getInteger("posZ"));
                }
                }
                }
                
                @SubscribeEvent
                public void onEntityWake(PlayerRespawnEvent e)
                {
                EntityPlayer player = e.player;
                
                if(player.getEntityData().getBoolean("ring"))
                {
                player.addPotionEffect(new PotionEffect(Potion.fireResistance.getId(), 800, 0, true, false));
                player.setPosition(player.getEntityData().getInteger("posX"), player.getEntityData().getInteger("posY"), player.getEntityData().getInteger("posZ"));
                }
                }
                }
                

                Mais le dernier événement “PlayerRespawnEvent” n’est pas appelé du tout je suppose donc qu’il s’enregistre avec :

                FMLCommonHandler.instance().bus().register();
                

                Et non pas :

                MinecraftForge.EVENT_BUS.register();
                

                Bref sinon c’est pas grave dans le pire des cas la bague ne fonctionnera que si le spawn point est indéfinie et puis tempi un.

                1 réponse Dernière réponse Répondre Citer 0
                • SCAREXS Hors-ligne
                  SCAREX
                  dernière édition par

                  Il faut l’enregistrer avec FMLCommonHandler et faire attention à ne pas confondre les 2 classes qui s’appellent PlayerEvent.

                  Site web contenant mes scripts : http://SCAREXgaming.github.io

                  Pas de demandes de support par MP ni par skype SVP.
                  Je n'accepte sur skype que l…

                  1 réponse Dernière réponse Répondre Citer 0
                  • EmotionFoxE Hors-ligne
                    EmotionFox
                    dernière édition par

                    Ah bah c’est bon j’ai réglé le problème je m’apprêtais à laisser tomber mais au final j’ai créé juste une nouvelle classe :

                    public class EmotionRespawnEvent
                    {
                    @SubscribeEvent
                    public void onEntityWake(PlayerRespawnEvent e)
                    {
                    EntityPlayer player = e.player;
                    
                    System.out.print("PLAYER RESPAWNED AFTER BED !!!!!!");
                    
                    if(player.getEntityData().getBoolean("ring"))
                    {
                    player.addPotionEffect(new PotionEffect(Potion.fireResistance.getId(), 800, 0, true, false));
                    player.setPosition(player.getEntityData().getInteger("posX"), player.getEntityData().getInteger("posY"), player.getEntityData().getInteger("posZ"));
                    player.getEntityData().setBoolean("ring", false);
                    }
                    }
                    }
                    

                    Que j’ai enregistré comme je l’ai dis avec :

                    FMLCommonHandler.instance().bus().register();
                    

                    Et au final c’est enfin réglé, alleluia ! Bref merci à vous deux en tous cas, c’est vrai que j’ai du mal à comprendre pourquoi le post à était aussi long mais au final ça marche alors c’est pas grave.

                    1 réponse Dernière réponse Répondre Citer 0
                    • SCAREXS Hors-ligne
                      SCAREX
                      dernière édition par

                      Tu peux utiliser la même classe.

                      Site web contenant mes scripts : http://SCAREXgaming.github.io

                      Pas de demandes de support par MP ni par skype SVP.
                      Je n'accepte sur skype que l…

                      1 réponse Dernière réponse Répondre Citer 0
                      • EmotionFoxE Hors-ligne
                        EmotionFox
                        dernière édition par

                        D’accord je pensais pas qu’on pouvais enregistrer deux fois la même classe avec deux méthodes différentes, merci encore t’es au top ,)

                        1 réponse Dernière réponse Répondre Citer 0
                        • 1
                        • 2
                        • 3
                        • 3 / 3
                        • Premier message
                          Dernier message
                        Design by Woryk
                        ContactMentions Légales

                        MINECRAFT FORGE FRANCE © 2024

                        Powered by NodeBB