Navigation

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

    SOLVED Block invisible avec ItemBlock custom

    1.12.x
    1.12.x
    2
    7
    755
    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.
    • C
      Chokearth last edited by robin4002

      Bonjours,

      suite à la nécessité de poser un multiblock d’un coup, j’ai créer un item pour poser les block, cependant, le block apparait pour la personne qui la posait ainsi que sur le serveur mais les autre joueur doivent deco-reco pour voir le block. Les joueurs on seulement la colision du block si il ne deco-reco pas, cependant il est possible pour eux de le faire apparaître parfois avec des clic-droit sur l’emplacement du block.

      code de l’item :

      package fr.chokearth.rpm.object.item;
      
      import fr.chokearth.rpm.init.BlockInit;
      import fr.chokearth.rpm.object.item.base.ItemBase;
      import net.minecraft.advancements.CriteriaTriggers;
      import net.minecraft.block.state.IBlockState;
      import net.minecraft.creativetab.CreativeTabs;
      import net.minecraft.entity.player.EntityPlayer;
      import net.minecraft.entity.player.EntityPlayerMP;
      import net.minecraft.item.ItemBlock;
      import net.minecraft.item.ItemStack;
      import net.minecraft.util.EnumActionResult;
      import net.minecraft.util.EnumFacing;
      import net.minecraft.util.EnumHand;
      import net.minecraft.util.math.BlockPos;
      import net.minecraft.world.World;
      
      public class ItemPlaceStand extends ItemBase{
      
         public ItemPlaceStand(String name, CreativeTabs creativeTabs) {
             super(name, creativeTabs);
         }
      
         @Override
         public EnumActionResult onItemUse(EntityPlayer player, World worldIn, BlockPos pos, EnumHand hand, EnumFacing facing, float hitX, float hitY, float hitZ) {
             BlockPos pos1 = new BlockPos(pos.getX(), pos.getY()+1, pos.getZ());
             BlockPos pos2 = new BlockPos(pos.getX(), pos.getY()+2, pos.getZ());
             ItemStack itemstack = player.getHeldItem(hand);
      
             if (worldIn.mayPlace(BlockInit.STANDSTORAGE, pos1, false, facing, player) && worldIn.mayPlace(BlockInit.STANDSELL, pos2, false, facing, player)){
      
                 IBlockState storage = BlockInit.STANDSTORAGE.getDefaultState();
                 IBlockState sell = BlockInit.STANDSELL.getDefaultState();
      
                 worldIn.setBlockState(pos1, storage, 11);
                 IBlockState state1 = worldIn.getBlockState(pos1);
                 BlockInit.STANDSTORAGE.onBlockPlacedBy(worldIn, pos1, state1, player, itemstack);
      
                 worldIn.setBlockState(pos2, sell, 11);
                 IBlockState state2 = worldIn.getBlockState(pos2);
                 BlockInit.STANDSELL.onBlockPlacedBy(worldIn, pos2, state2, player, itemstack);
                 itemstack.setCount(itemstack.getCount()-1);
             }
             return super.onItemUse(player, worldIn, pos, hand, facing, hitX, hitY, hitZ);
         }
      }
      

      Merci d’avance.

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

        Salut,
        Remplaces les 11 de la fonction setBlockState par 3 (ce nombre correspond au flag, 3 (flag 1 et 2 cumulé) déclenche l’envoie d’un paquet de mise à jour au client + une mise à jour de la lumière).

        1 Reply Last reply Reply Quote 0
        • C
          Chokearth last edited by

          @‘robin4002’:

          Salut,
          Remplaces les 11 de la fonction setBlockState par 3 (ce nombre correspond au flag, 3 (flag 1 et 2 cumulé) déclenche l’envoie d’un paquet de mise à jour au client + une mise à jour de la lumière).

          J’ai essayer, cela ne change rien.

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

            Tu as bien tout recompilé et relancé le serveur après modification ?

            1 Reply Last reply Reply Quote 0
            • C
              Chokearth last edited by

              @‘robin4002’:

              Tu as bien tout recompilé et relancé le serveur après modification ?

              Oui, je lance avec la commande runClient de Graddle ( je programme sur IntelliJ IDEA ) et pour les test server j’ouvre deux client et je fais une LAN.

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

                Dans ce cas je ne sais pas d’où cela vient 😕

                1 Reply Last reply Reply Quote 0
                • C
                  Chokearth last edited by

                  @‘robin4002’:

                  Dans ce cas je ne sais pas d’où cela vient 😕

                  D’accord, merci quand même. 🙂

                  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