Navigation

    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Popular
    • Users
    • Groups

    SOLVED Event Drops EntityItem

    1.9.x et 1.10.x
    1.10.x
    5
    11
    1677
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • SpyMan
      SpyMan last edited by

      Bonjour alors voila je cherche a faire en sorte que quand le joueur drop un item (une golden apple normal) et bien que il se produise quelque chose, mais le problème c’est que je voudrais que cela fonctionne qu’avec la golden apple normal et non l’autre, et c’est là que je n’y arrive pas.
      Le code s’execute mais la condition qui check l’entityItem ne prend pas en compte la metedata.

      @SubscribeEvent
      public void onItemDrop(ItemTossEvent event)
      {
         World world = event.getEntityItem().getEntityWorld();
         ItemStack itemGoldApple = new ItemStack(Items.GOLDEN_APPLE, 1, 0);
         ItemStack itemStack = event.getEntityItem().getEntityItem();
         int entityItemPosX = event.getEntityItem().getPosition().getX();
         int entityItemPosY = event.getEntityItem().getPosition().getY();
         int entityItemPosZ = event.getEntityItem().getPosition().getZ();
         BlockPos goldBlockPos = new BlockPos(entityItemPosX, entityItemPosY - 2, entityItemPosZ);
      
         if (itemStack == itemGoldApple)
         {
             if (world.getBlockState(goldBlockPos).getBlock() == Blocks.GOLD_BLOCK)
             {
                  // ici il va ce passer quelque chose 
             }
         }
      }
      
      1 Reply Last reply Reply Quote 0
      • BrokenSwing
        BrokenSwing Moddeurs confirmés Rédacteurs last edited by

        if(itemStack.getItem() == Items.GOLDEN_APPLE && itemStack.getMetadata() == 0)
        
        1 Reply Last reply Reply Quote 0
        • SpyMan
          SpyMan last edited by

          Je suis vraiment pas doué, j’ai tout essayé sauf ça 😕
          Et aussi un autre truc, quand je fait spawn un éclair j’entend le bruit mais je le vois pas 😕
          voici l’instruction

          world.spawnEntityInWorld(new EntityLightningBolt(world, entityItemPosX, entityItemPosY, entityItemPosZ, true));
          
          1 Reply Last reply Reply Quote 0
          • Gabs
            Gabs last edited by

            @‘SpyMan’:

            Je suis vraiment pas doué, j’ai tout essayé sauf ça 😕
            Et aussi un autre truc, quand je fait spawn un éclair j’entend le bruit mais je le vois pas 😕
            voici l’instruction

            world.spawnEntityInWorld(new EntityLightningBolt(world, entityItemPosX, entityItemPosY, entityItemPosZ, true));
            

            il me semble que il faut un !world.isremote .

            1 Reply Last reply Reply Quote 0
            • SpyMan
              SpyMan last edited by

              Non, si tu met un !world.isRemote il ne se pas plus rien, parce que l’éclair est coté client et server

              1 Reply Last reply Reply Quote 0
              • Deleted
                Deleted last edited by

                Essaie de le faire spawn uniquement côté client

                1 Reply Last reply Reply Quote 0
                • SpyMan
                  SpyMan last edited by

                  Non plus…
                  Le truc c’est que je comprend pas vraiment pourquoi ça fait ça

                  1 Reply Last reply Reply Quote 0
                  • Deleted
                    Deleted last edited by

                    Okay j’ai fait une recherche et j’ai trouvé.
                    Le spawn doit tout comme les autres entités se faire uniquement côté serveur. En revanche les éclairs ne doivent pas être spawn à l’aide de World#spawnEntityInWorld, mais plutôt World#addWeatherEffect 😃

                    1 Reply Last reply Reply Quote 0
                    • SpyMan
                      SpyMan last edited by

                      Merci ça fonctionne mieux, en revanche je comprend pas pourquoi  quand je fais ça :

                             int entityItemPosX = event.getEntityItem().getPosition().getX();
                             int entityItemPosY = event.getEntityItem().getPosition().getY();
                             int entityItemPosZ = event.getEntityItem().getPosition().getZ();
                      

                      cela me retourne la position du joueur de non de mon EntityItem

                      1 Reply Last reply Reply Quote 0
                      • robin4002
                        robin4002 Administrateurs Rédacteurs Moddeurs confirmés last edited by

                        Car il renvoie les coordonnées de l’item au moment où il est lancé et au moment où il est lancé par le joueur l’item se trouve aux mêmes coordonnées que le joueur.

                        1 Reply Last reply Reply Quote 0
                        • SpyMan
                          SpyMan last edited by

                          Ok merci, je comprenais pas pourquoi c’était comme cela

                          1 Reply Last reply Reply Quote 0
                          • 1 / 1
                          • First post
                            Last post
                          Design by Woryk
                          Contact / Mentions Légales / Faire un don

                          MINECRAFT FORGE FRANCE © 2018

                          Powered by NodeBB