• S'inscrire
    • Se connecter
    • Recherche
    • Récent
    • Mots-clés
    • Populaire
    • Utilisateurs
    • Groupes

    Résolu Les events en 1.8

    1.8.x
    1.8
    5
    16
    3464
    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.
    • geekuko
      geekuko dernière édition par

      Bonjour j’ai un souci avec mon event (event pour créer un portail) , j’ai récupéré qui date de la 1.7 et quand je le met en 1.8 il y a un max d’erreur.
      pouvez-vous m’aider à la corriger please

      package EpicBoss;
      
      import net.minecraft.block.Block;
      import net.minecraft.entity.player.EntityPlayer;
      import net.minecraft.init.Blocks;
      import net.minecraft.item.Item;
      import net.minecraft.item.ItemBlock;
      import net.minecraft.item.ItemStack;
      import net.minecraft.world.World;
      import net.minecraftforge.event.entity.player.PlayerInteractEvent;
      import net.minecraftforge.fml.common.eventhandler.SubscribeEvent;
      
      public class eventmanager {
      
      @SubscribeEvent
      public void onPlayerInteract(PlayerInteractEvent event){
      System.out.print("true event");
      final World world = event.entityLiving.worldObj;
      if (world.isRemote || !event.action.equals(PlayerInteractEvent.Action.RIGHT_CLICK_BLOCK))
      return;
      
      ItemStack stack = event.entityPlayer.inventory.getCurrentItem();
      EntityPlayer player = event.entityPlayer;
      
      int x = event.x, y = event.y, z = event.z;
      if (event.face == 0)
      –y;
      else if (event.face == 1)
      ++y;
         else if (event.face == 2)
      --y;
      else if (event.face == 3)
      ++y;
      else if (event.face == 4)
      --x;
      else if (event.face == 5)
      ++x;
      if (stack != null && stack.getItem() instanceof ItemBlock){
      if (Item.getIdFromItem(stack.getItem()) == Block.getIdFromBlock(Blocks.diamond_block)){
      if (world.getBlock(x, y, z + 1) == Blocks.air &&
      world.getBlock(x, y, z - 1) == Blocks.air &&
         world.getBlock(x + 1, y, z) == Blocks.air &&
      world.getBlock(x - 1, y, z) == Blocks.air &&
      world.getBlock(x, y, z + 2) == Blocks.stone &&
      world.getBlock(x, y, z - 2) == Blocks.stone &&
      world.getBlock(x + 2, y, z) == Blocks.stone &&
      world.getBlock(x - 2, y, z) == Blocks.stone &&
      world.getBlock(x + 1, y, z + 1) == Blocks.air &&
      world.getBlock(x + 1, y, z - 1) == Blocks.air &&
         world.getBlock(x - 1, y, z + 1) == Blocks.air &&
      world.getBlock(x - 1, y, z - 1) == Blocks.air ) {
      
      world.setBlock(x, y, z, epicboss.blockteleporter, 0, 2);
      world.setBlock(x - 1, y, z, epicboss.blockteleporter, 0, 2);
      world.setBlock(x + 1, y, z, epicboss.blockteleporter, 0, 2);
      world.setBlock(x, y, z - 1, epicboss.blockteleporter, 0, 2);
      world.setBlock(x, y, z + 1, epicboss.blockteleporter, 0, 2);
      }
      
      }
      }
      }
      }
      
      

      d’avance merci

      1 réponse Dernière réponse Répondre Citer 0
      • isador
        isador Moddeurs confirmés Modérateurs dernière édition par

        si tu ne nous dis pas les erreur ca va être difficile de t’aider

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

          @‘geekuko’:

          Bonjour j’ai un souci avec mon event (event pour créer un portail) , j’ai récupéré qui date de la 1.7 et quand je le met en 1.8 il y a un max d’erreur.
          pouvez-vous m’aider à la corriger please

          package EpicBoss;
          
          import net.minecraft.block.Block;
          import net.minecraft.entity.player.EntityPlayer;
          import net.minecraft.init.Blocks;
          import net.minecraft.item.Item;
          import net.minecraft.item.ItemBlock;
          import net.minecraft.item.ItemStack;
          import net.minecraft.world.World;
          import net.minecraftforge.event.entity.player.PlayerInteractEvent;
          import net.minecraftforge.fml.common.eventhandler.SubscribeEvent;
          
          public class eventmanager {
          
          @SubscribeEvent
          public void onPlayerInteract(PlayerInteractEvent event){
          System.out.print("true event");
          final World world = event.entityLiving.worldObj;
          if (world.isRemote || !event.action.equals(PlayerInteractEvent.Action.RIGHT_CLICK_BLOCK))
          return;
          
          ItemStack stack = event.entityPlayer.inventory.getCurrentItem();
          EntityPlayer player = event.entityPlayer;
          
          int x = event.x, y = event.y, z = event.z;
          if (event.face == 0)
          –y;
          else if (event.face == 1)
          ++y;
             else if (event.face == 2)
          --y;
          else if (event.face == 3)
          ++y;
          else if (event.face == 4)
          --x;
          else if (event.face == 5)
          ++x;
          if (stack != null && stack.getItem() instanceof ItemBlock){
          if (Item.getIdFromItem(stack.getItem()) == Block.getIdFromBlock(Blocks.diamond_block)){
          if (world.getBlock(x, y, z + 1) == Blocks.air &&
          world.getBlock(x, y, z - 1) == Blocks.air &&
             world.getBlock(x + 1, y, z) == Blocks.air &&
          world.getBlock(x - 1, y, z) == Blocks.air &&
          world.getBlock(x, y, z + 2) == Blocks.stone &&
          world.getBlock(x, y, z - 2) == Blocks.stone &&
          world.getBlock(x + 2, y, z) == Blocks.stone &&
          world.getBlock(x - 2, y, z) == Blocks.stone &&
          world.getBlock(x + 1, y, z + 1) == Blocks.air &&
          world.getBlock(x + 1, y, z - 1) == Blocks.air &&
             world.getBlock(x - 1, y, z + 1) == Blocks.air &&
          world.getBlock(x - 1, y, z - 1) == Blocks.air ) {
          
          world.setBlock(x, y, z, epicboss.blockteleporter, 0, 2);
          world.setBlock(x - 1, y, z, epicboss.blockteleporter, 0, 2);
          world.setBlock(x + 1, y, z, epicboss.blockteleporter, 0, 2);
          world.setBlock(x, y, z - 1, epicboss.blockteleporter, 0, 2);
          world.setBlock(x, y, z + 1, epicboss.blockteleporter, 0, 2);
          }
          
          }
          }
          }
          }
          
          

          d’avance merci

          Premièrement, serait-il possible de dire où sont les erreurs.
          Deuxièmement, tu utilises un PlayerInteractEvent donc il ne devrait apparaître nulle part dans ton code event.entityLiving.
          Troisièmement, pour le position utilise la position du joueur au lieu de celle de l’event.
          Quatrièmement, je suppose que le event.face correspond à là où regarde le joueur, pour ça il faut utiliser EnumFacing directionHorizontal = event.entityPlayer.getHorizontalFacing;
          Cinquièmement, pour trouver si l’item correspond à un certain Item, il faut faire stack.getItem == TonItem (si c’est un block, il faut faire Item.getItemFromBlock(TonBlock).
          Sixièmement, pour savoir si les blocs autour sont un certain bloc, il faut utiliser world.getBlockState(BlockPos).getBlock() == Blocks.air .

          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
          • geekuko
            geekuko dernière édition par

            je comprend pas tt , puis ce code il fonctionnai tres bien en 1.7 !!
            il y a tellement d’erreur que pour les voir il te serai plus facile pour toi de copier le code et de le tester ('enfin si tu à l’envi et le temps)

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

              Pour les coordonnés, si il faut utiliser ceux de l’event puisqu’il faut les coordonnés où le joueur à fait le clic droit et non les coordonnées du joueur.
              Ce qui change c’est qu’il faut utiliser les BlockPos à la place de x y z

              Pour event.entityLiving ça ne cause aucun problème puisque de toute façon EntityPlayer est extends EntityLivingBase

              1 réponse Dernière réponse Répondre Citer 0
              • RedRelay
                RedRelay Moddeurs confirmés dernière édition par

                Un package avec des majuscules et une classe qui commence par une minuscule, c’est une erreur de convention.
                Utiliser event.entityLiving quand on est dans un PlayerInteractEvent, c’est une erreur de sémantique.
                Les events.face vont être remplacé par des Enum si ce n’est pas déjà fait.

                Si tu codes dans eclipse, tu as un onglet “problems”, la dedans toutes les erreurs sont décrites.

                –------------------------------------------------------------------------------------
                Si tu trouves mon intervention pertinente, n'hésite pas a m…

                1 réponse Dernière réponse Répondre Citer 0
                • geekuko
                  geekuko dernière édition par

                  je comprend pas comment on utilise le BlockPos …

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

                    @‘geekuko’:

                    je comprend pas comment on utilise le BlockPos …

                    BlockPos est simplement une classe contenant les coordonnées d’un bloc exemple : new BlockPos(x,y,z).
                    il remplace la plupart des paramètres x,y,z.

                    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 1
                    • geekuko
                      geekuko dernière édition par

                      quelqu’un pourrai me le corriger directement ? car la je tourne en rond please cela serai trop simpa

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

                        @‘geekuko’:

                        quelqu’un pourrai me le corriger directement ? car la je tourne en rond please cela serai trop simpa

                        Je suis en train mais j’ai un problème avec le event.face == 0, il faudrait que tu me redonnes les directions sans les numéros car pour moi 0 = south or tes nombres vont jusqu’à 5 mais il n’y a que 4 directions !

                        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
                        • geekuko
                          geekuko dernière édition par

                          merde ben la … au pire ta skype? ca serai plus simple non? demande moi c’est geekuko

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

                            
                            @SubscribeEvent
                            public void onPlayerInteract(PlayerInteractEvent event) {
                            ItemStack stack = event.entityPlayer.getCurrentEquippedItem();
                            
                            if (!event.world.isRemote && event.action == PlayerInteractEvent.Action.RIGHT_CLICK_BLOCK && stack != null && stack.getItem() == Items.apple && event.world.getBlockState(event.pos).getBlock() == Blocks.diamond_block) {
                            BlockPos pos = event.pos;
                            Block block = Blocks.air;
                            Block block1 = Blocks.stone;
                            boolean flag = event.world.getBlockState(pos.south()).getBlock() == block && event.world.getBlockState(pos.north()).getBlock() == block && event.world.getBlockState(pos.east()).getBlock() == block && event.world.getBlockState(pos.west()).getBlock() == block;
                            boolean flag1 = event.world.getBlockState(pos.south().south()).getBlock() == block1 && event.world.getBlockState(pos.north().north()).getBlock() == block1 && event.world.getBlockState(pos.east().east()).getBlock() == block1 && event.world.getBlockState(pos.west().west()).getBlock() == block1;
                            boolean flag2 = event.world.getBlockState(pos.south().east()).getBlock() == block1 && event.world.getBlockState(pos.south().west()).getBlock() == block1 && event.world.getBlockState(pos.north().east()).getBlock() == block1 && event.world.getBlockState(pos.north().west()).getBlock() == block1;
                            
                            if (flag && flag1 && flag2) {
                            event.world.setBlockState(pos, Blocks.gold_block.getDefaultState());
                            event.world.setBlockState(pos.south(), Blocks.gold_block.getDefaultState());
                            event.world.setBlockState(pos.north(), Blocks.gold_block.getDefaultState());
                            event.world.setBlockState(pos.east(), Blocks.gold_block.getDefaultState());
                            event.world.setBlockState(pos.west(), Blocks.gold_block.getDefaultState());
                            event.entityPlayer.inventory.consumeInventoryItem(Items.apple);
                            }
                            }
                            }
                            
                            

                            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 1
                            • geekuko
                              geekuko dernière édition par

                              merciiiiiiiii SCAREX!!!

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

                                Si c’est résolu, mets la balise résolu.

                                1 réponse Dernière réponse Répondre Citer 0
                                • geekuko
                                  geekuko dernière édition par

                                  c’est ou la balise?

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

                                    Il faut tu édites ton premier message puis que tu change la balise.

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

                                    MINECRAFT FORGE FRANCE © 2018

                                    Powered by NodeBB