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

    Résolu Block invisible avec ItemBlock custom

    1.12.x
    1.12.x
    2
    7
    986
    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.
    • C
      Chokearth dernière édition par 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 réponse Dernière réponse Répondre Citer 0
      • robin4002
        robin4002 Moddeurs confirmés Rédacteurs Administrateurs dernière édition par

        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 réponse Dernière réponse Répondre Citer 0
        • C
          Chokearth dernière édition par

          @‘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 réponse Dernière réponse Répondre Citer 0
          • robin4002
            robin4002 Moddeurs confirmés Rédacteurs Administrateurs dernière édition par

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

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

              @‘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 réponse Dernière réponse Répondre Citer 0
              • robin4002
                robin4002 Moddeurs confirmés Rédacteurs Administrateurs dernière édition par

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

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

                  @‘robin4002’:

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

                  D’accord, merci quand même. 🙂

                  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