MFF

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

    Comment enlever un item d'un stack avec onItemUse

    Planifier Épinglé Verrouillé Déplacé Résolu 1.14.x
    1.14.4
    3 Messages 2 Publieurs 336 Vues 2 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.
    • A Hors-ligne
      Axhar005
      dernière édition par

      Bonjour, je tente depuis 2 jours de créer un item “stackable” qui a le même effet que la hache(avec clic droit sur une buche ça enlève l’écorce.) jusque la tout va bien j’ai juste copier coller cette effet.

      Je voudrais, lorsque je fait clic droit sur une buche, que ça enlève un item du stack (ex: j’en est 16 dans ma main et après le clic il m’en reste 15) et pas que sa donne des damageItem.

      J’ai fait me recherche mais je comprend pas comment l’utiliser dans mon code ou juste ça fonctionne pas.

      je tien a préciser que je suis un débutant et que j’ai pas toucher au code de minecraft depuis la 1.7 merci de la compréhension.

      ( Mon item avec le onItemUse de la hache )

      
      protected static final Map<Block, Block> BLOCK_STRIPPING_MAP = (new Builder<Block, Block>()).put(Blocks.OAK_WOOD, Blocks.STRIPPED_OAK_WOOD).put(Blocks.OAK_LOG, Blocks.STRIPPED_OAK_LOG).put(Blocks.DARK_OAK_WOOD, Blocks.STRIPPED_DARK_OAK_WOOD).put(Blocks.DARK_OAK_LOG, Blocks.STRIPPED_DARK_OAK_LOG).put(Blocks.ACACIA_WOOD, Blocks.STRIPPED_ACACIA_WOOD).put(Blocks.ACACIA_LOG, Blocks.STRIPPED_ACACIA_LOG).put(Blocks.BIRCH_WOOD, Blocks.STRIPPED_BIRCH_WOOD).put(Blocks.BIRCH_LOG, Blocks.STRIPPED_BIRCH_LOG).put(Blocks.JUNGLE_WOOD, Blocks.STRIPPED_JUNGLE_WOOD).put(Blocks.JUNGLE_LOG, Blocks.STRIPPED_JUNGLE_LOG).put(Blocks.SPRUCE_WOOD, Blocks.STRIPPED_SPRUCE_WOOD).put(Blocks.SPRUCE_LOG, Blocks.STRIPPED_SPRUCE_LOG).build();
         
       public ActionResultType onItemUse(ItemUseContext context) {
              World world = context.getWorld();
              BlockPos blockpos = context.getPos();
              BlockState blockstate = world.getBlockState(blockpos);
              Block block = BLOCK_STRIPPING_MAP.get(blockstate.getBlock());
              if (block != null) {
                 PlayerEntity playerentity = context.getPlayer();
                 world.playSound(playerentity, blockpos, SoundEvents.ITEM_AXE_STRIP, SoundCategory.BLOCKS, 1.0F, 1.0F);
                 if (!world.isRemote) {
                    world.setBlockState(blockpos, block.getDefaultState().with(RotatedPillarBlock.AXIS, blockstate.get(RotatedPillarBlock.AXIS)), 11);
                    if (playerentity != null) {
                       context.getItem().damageItem(1, playerentity, (p_220040_1_) -> {
                          p_220040_1_.sendBreakAnimation(context.getHand());
                       });
                    }
                 }
      
                 return ActionResultType.SUCCESS;
              } else {
                 return ActionResultType.PASS;
              }
           }
      

      Un grand merci de l’aide.

      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

        Bonjour,

        C’est juste context.getItem().shrink(1) pour réduire de 1 le nombre d’item.

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

          @Axhar005 a dit dans Comment enlever un item d'un stack avec onItemUse :

          Merci beaucoup maintenant je comprend mieux, le context.getItem return l’item que l’on a dans notre main.

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

          MINECRAFT FORGE FRANCE © 2024

          Powered by NodeBB