MFF

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

    Minecraft 1.7.10: HAMMER NE PERD PAS DE DURABILITEE

    Planifier Épinglé Verrouillé Déplacé Résolu 1.7.x
    1.7.10
    3 Messages 2 Publieurs 495 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.
    • S Hors-ligne
      Sushi_Pvp
      dernière édition par Sushi_Pvp

      Hello tout le monde !
      J’ai créer un Hammer pour mon serveur minecraft. Tout fonctionne bien mais ce dernier ne perd pas du dura. Je pense que ça vient du cancel event que j’ai fais mais je sais vraiment pas comment faire. Si quelqu’un pourrait m’aider, ce serait sympas 🙂 !

      package com.mod.aktezia.items;
      
      import java.util.List;
      import java.util.Set;
      
      import com.google.common.collect.ImmutableSet;
      import com.google.common.collect.Sets;
      
      import net.minecraft.block.Block;
      import net.minecraft.enchantment.EnchantmentHelper;
      import net.minecraft.entity.EntityLivingBase;
      import net.minecraft.entity.player.EntityPlayer;
      import net.minecraft.init.Blocks;
      import net.minecraft.item.ItemPickaxe;
      import net.minecraft.item.ItemStack;
      import net.minecraft.util.MathHelper;
      import net.minecraft.util.Vec3;
      import net.minecraft.world.World;
      import net.minecraftforge.common.ForgeHooks;
      import net.minecraftforge.common.MinecraftForge;
      import net.minecraftforge.event.world.BlockEvent.BreakEvent;
      
      public class ItemHammer extends ItemPickaxe
      {
          
          public ItemHammer(ToolMaterial p_i45347_1_)
          {
              super(p_i45347_1_);
              // TODO Auto-generated constructor stub
          }
      
      
          public boolean onBlockDestroyed(ItemStack stack, World world, Block block, int x, int y, int z, EntityLivingBase entity) {
              if(entity instanceof EntityPlayer) {
      
              EntityPlayer player = (EntityPlayer)entity;
      
              Vec3 lookVec = player.getLookVec();
              double xLook = Math.abs(lookVec.xCoord);
              double yLook = Math.abs(lookVec.yCoord);
              double zLook = Math.abs(lookVec.zCoord);
      
      
              double max = Math.max(xLook, Math.max(yLook, zLook));
      
      
      
              int addX = 1;
              int addY = 1;
              int addZ = 1;
      
              if(max == xLook) {
              y -= 1;
              z -= 1;
              addX = 3;
              } else if(max == yLook) {
              x -= 1;
              z -= 1;
              addY = 3;
              } else if(max == zLook) {
              x -= 1;
              y -= 1;
              addZ = 3;
              }
      
              for(int xOffset = 0; xOffset < 3; xOffset += addX) {
              for(int yOffset = 0; yOffset < 3; yOffset += addY) {
              for(int zOffset = 0; zOffset < 3; zOffset += addZ) {
      
              Block currentBlock = world.getBlock(x + xOffset, y + yOffset, z + zOffset);
              int blockMetadata = world.getBlockMetadata(x + xOffset, y + yOffset, z + zOffset);
      
              BreakEvent event = new BreakEvent(x + xOffset, y + yOffset, x + zOffset, world, currentBlock, blockMetadata, (EntityPlayer)player);
              event.setCanceled(!player.capabilities.isCreativeMode);
      
              if(currentBlock.getBlockHardness(world, x + xOffset, y + yOffset, z + zOffset) <= 4.0F) {
              event.setCanceled(false);
              }
      
              MinecraftForge.EVENT_BUS.post(event);
      
              if(!event.isCanceled()) {
              currentBlock.harvestBlock(world, (EntityPlayer)player, x + xOffset, y + yOffset, z + zOffset, blockMetadata);
              world.setBlockToAir(x + xOffset, y + yOffset, z + zOffset);
      
              boolean hasSilk = EnchantmentHelper.getSilkTouchModifier(player);
              boolean canSilk = currentBlock.canSilkHarvest(world, (EntityPlayer)player, x + xOffset, y + yOffset, z + zOffset, blockMetadata);
              if(ForgeHooks.canHarvestBlock(currentBlock, (EntityPlayer)player, blockMetadata) && (!hasSilk || hasSilk && !canSilk)) {
      
              int exp = currentBlock.getExpDrop(world, blockMetadata, EnchantmentHelper.getFortuneModifier(player));
              currentBlock.dropXpOnBlockBreak(world, x + xOffset, y + yOffset, z + zOffset, exp);
              }
              }
              }
              }
              }
              return true;
              }
              return false;
              }
          
          public void addInformation(ItemStack par1ItemStack, EntityPlayer par2EntityPlayer, List par2List, boolean par4)
          {
          par2List.add("\u00A73" + "> Ce marteau permet:");
      
          par2List.add("\u00A7e" + "> De miner en 3*3*1");
          
          par2List.add("\u00A7e" + "> Utile pour le minage");
          }
         
      
          
      
      }
      
      

      Je remercie d’avance les gens qui vont m’aider !

      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 robin4002

        Salut,
        Je ne vois aucun event cancel dans ton code.
        Ce que je ne vois pas non plus, c’est du code permettant d’endommager l’item.
        Donc forcement il ne va pas s’abimer.

        De tête, c’est stack.damageItem(entity, 1);

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

          Mercii beaucoup, problème régler !

          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