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

    Résolu Poser un bloc

    1.7.x
    1.7.2
    3
    5
    1379
    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.
    • mindany2
      mindany2 dernière édition par robin4002

      Bonjour,
      Aujourd’hui j’ai voulu le faite de poser des blocs impossible, j’ai donc essayé quelque chose comme ça

          @SubscribeEvent
          @SideOnly(Side.CLIENT)
          public void onBlockPlaced(PlayerInteractEvent event)
          {
               EntityPlayer player = FMLClientHandler.instance().getClient().thePlayer;
               if(event.useBlock != null && !player.capabilities.isCreativeMode){
                    event.setCanceled(true);
               }
           }
      

      Le problème avec ce code est que je ne peux plus me servir des items également, ce qui n’est pas le but avez vous une idée ?
      Merci d’avance 🙂

      PS.: Si vous savez aussi comment enlever un effet

      par3EntityPlayer.removePotionEffect(mod_x.xid);
      

      n’a plus l’air de marcher

      ^^

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

        @‘mindany2’:

        if(event.useBlock != null && !player.capabilities.isCreativeMode){
        event.setCanceled(true);
        }

        Problème trouvé;

        Tu check pas quel block est utilisé. Un truc genre event.block doit exister pour vérifier que ton block = celui posé

        "If you have a comprehensive explanation for everything then it decreases uncertainty and anxiety and reduces your cognitive load. And if you can use that simplifying algorithm to put yourself on the side of moral virtue then you’re constantly a good person with a minimum of effort."
        ― Jordan B. Peterson

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

          Effectivement , j’ai approfondi cette idée car il n’y a pas de truc pour checker quelle bloc est posé

          int a = Block.getIdFromBlock(Block.getBlockFromItem(event.entityPlayer.getCurrentEquippedItem().getItem()));
          int b = Item.getIdFromItem(event.entityPlayer.getCurrentEquippedItem().getItem());
          if(event.useBlock != null&& a == b && !player.capabilities.isCreativeMode){
          event.setCanceled(true);
          }
          

          Le problème c’est que certain blocs comme les comparateurs n’utilisent pas le même id item/block , si tu as une idée ^^’

          ^^

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

            Salut,
            Ta condition ne sert à rien, useBlock ne peut pas être null.
            En revanche tu peux changer sa valeur, le mettre en deny ou en allow. Et en passant, tu peux aussi faire ça en serveur, pas besoin de FMLClientHandler.instance().getClient().thePlayer qui ne fonctionne que en client puisque l’event à le joueur en argument :

            @SubscribeEvent
            public void onInteract(PlayerInteractEvent event)
            {
            if(!event.entityPlayer.capabilities.isCreativeMode)
            {
            event.useBlock = Result.DENY;
            }
            }
            

            Pour les effets de potion, la fonction fonctionne très bien, à mon avis tu l’as exécuté en client alors qu’elle doit être exécuté en serveur.
            Il ne faut pas confondre client et serveur, le client lui ne fait que les rendus, le reste il ne gère pas.

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

              D’accord merci, cela marche en effet
              Pour la potion cela marchait mais je la réactiver juste après par erreur donc je ne l’avait pas vu ^^

              ^^

              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