MFF

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

    Pleins de problèmes crashs.

    Planifier Épinglé Verrouillé Déplacé Sans suite
    1.8
    19 Messages 5 Publieurs 3.9k Vues 1 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.
    • GabsG Hors-ligne
      Gabs
      dernière édition par

      Bonsoir,

      Alors j’ai énormément de soucis avec mon mod de bug crash etc…

      Je vous fais la liste de a peu près tout les problèmes:

      L’item balai qui permet de nettoyer des bloc sale :

      
      package com.CSC.net.item;
      
      import com.CSC.net.block.CSCBlocks;
      
      import net.minecraft.block.state.IBlockState;
      import net.minecraft.entity.player.EntityPlayer;
      import net.minecraft.init.Blocks;
      import net.minecraft.item.EnumAction;
      import net.minecraft.item.Item;
      import net.minecraft.item.ItemStack;
      import net.minecraft.util.BlockPos;
      import net.minecraft.util.ChatComponentText;
      import net.minecraft.util.EnumChatFormatting;
      import net.minecraft.util.EnumFacing;
      import net.minecraft.util.MovingObjectPosition;
      import net.minecraft.util.Vec3;
      import net.minecraft.world.World;
      import net.minecraftforge.event.entity.player.PlayerInteractEvent.Action;
      import net.minecraftforge.fml.relauncher.Side;
      import net.minecraftforge.fml.relauncher.SideOnly;
      
      public class balai extends Item {
      
      private BlockPos pos2;
      
          public int getMaxItemUseDuration(ItemStack stack)
          {
              return 32; // durée
          }
      
          public EnumAction getItemUseAction(ItemStack stack)
          {
              return EnumAction.BOW; // type d'animation
          }
      
          public boolean onItemUse(ItemStack stack, EntityPlayer playerIn, World worldIn, BlockPos pos, EnumFacing side, float hitX, float hitY, float hitZ)
          {
          pos2 = pos;
              return false;
          }
      
          public ItemStack onItemRightClick(ItemStack itemStackIn, World worldIn, EntityPlayer playerIn)
          {
              playerIn.setItemInUse(itemStackIn, this.getMaxItemUseDuration(itemStackIn)); // met l'item en utilisation
              return itemStackIn;
          }
      
          public ItemStack onItemUseFinish(ItemStack stack, World worldIn, EntityPlayer playerIn)
          {
          if(!worldIn.isRemote) {
      if(stack != null && stack.getItem() == CSCItems.balai) {
      MovingObjectPosition ray = playerIn.rayTrace(4, 0);
      BlockPos pos = ray.getBlockPos();
      IBlockState state = worldIn.getBlockState(pos);
      System.out.println(pos);
      if(state.getBlock() == CSCBlocks.block_sale && worldIn.getBlockState(new BlockPos(pos.getX(), pos.getY() + 1, pos.getZ())).getBlock() != Blocks.anvil) {
      if(stack.getItemUseAction() == EnumAction.BOW)
      worldIn.setBlockState(new BlockPos(pos.getX(), pos.getY(), pos.getZ()), CSCBlocks.block_propre.getDefaultState());
      }
      else if(worldIn.getBlockState(new BlockPos(pos.getX(), pos.getY() + 1, pos.getZ())).getBlock() == Blocks.anvil)
      {
      playerIn.addChatMessage(new ChatComponentText("Vous ne pouvez pas néttoyez ce bloc car il y a une poubelle dessus, enlevez d'abord la poubelle avant de néttoyer ce bloc !"));
      }
      else
      {
      playerIn.addChatMessage(new ChatComponentText(EnumChatFormatting.RED + "Action impossible."));
      }
      }
          }
      
              return stack;
          }
      
      }
      
      

      crash:

      et j’ai le bâton de prison aussi:

      
      package com.CSC.net.item;
      
      import java.util.ArrayList;
      import java.util.Date;
      import java.util.HashMap;
      
      import net.minecraft.client.Minecraft;
      import net.minecraft.entity.Entity;
      import net.minecraft.entity.EntityLiving;
      import net.minecraft.entity.EntityLivingBase;
      import net.minecraft.entity.player.EntityPlayer;
      import net.minecraft.item.Item;
      import net.minecraft.item.ItemStack;
      import net.minecraft.util.ChatComponentText;
      import net.minecraft.util.IChatComponent;
      import net.minecraft.world.World;
      
      import com.CSC.net.Main;
      import com.CSC.net.GUI.Prison;
      
      public class batonP extends Item
      {
      
      public static ArrayList <entitylivingbase>array = new ArrayList<entitylivingbase>();
      
      public static HashMap <entitylivingbase, date="">map = new HashMap();
      
      public static EntityLivingBase base;
      
          public boolean itemInteractionForEntity(ItemStack stack, EntityPlayer player, EntityLivingBase target)
          {
          if(target instanceof EntityPlayer){
      
          player.openGui(Main.instance, 6, player.worldObj, (int) player.posX, (int) player.posY, (int) player.posZ);
          array.add(target);
          base = target;
          }
              return false;
          }
      
          public ItemStack onItemRightClick(ItemStack itemStackIn, World worldIn, EntityPlayer player)
          {
              return itemStackIn;
          }
      
          public void onUpdate(ItemStack stack, World worldIn, Entity entityIn, int itemSlot, boolean isSelected) 
          {
          if(!array.isEmpty())
          for(EntityLivingBase u : array)
          {
          if(map.get(u) != null){
          System.out.println(map.get(u).getTime());
          if(map.get(u).getTime() <= new Date().getTime())
          {
          System.out.println(map.get(u).getTime() - new Date().getTime());
      
          entityIn.addChatMessage(new ChatComponentText("test " + u.getName()));
          map.remove(u);
          array.remove(u);
          }
          }
          }
      
          }
      
      }
      
      

      crash:

      
      java.lang.ClassCastException: java.lang.Integer cannot be cast to net.minecraft.client.gui.GuiScreen
      at net.minecraftforge.fml.client.FMLClientHandler.showGuiScreen(FMLClientHandler.java:478)
      at net.minecraftforge.fml.common.FMLCommonHandler.showGuiScreen(FMLCommonHandler.java:344)
      at net.minecraftforge.fml.common.network.internal.FMLNetworkHandler.openGui(FMLNetworkHandler.java:103)
      at net.minecraft.entity.player.EntityPlayer.openGui(EntityPlayer.java:2295)
      at com.CSC.net.item.batonP.func_111207_a(batonP.java:34)
      at net.minecraft.item.ItemStack.func_111282_a(ItemStack.java:342)
      at net.minecraft.entity.player.EntityPlayer.func_70998_m(EntityPlayer.java:1183)
      at net.minecraft.client.multiplayer.PlayerControllerMP.func_78768_b(PlayerControllerMP.java:478)
      at net.minecraft.client.Minecraft.func_147121_ag(Minecraft.java:1474)
      at net.minecraft.client.Minecraft.func_71407_l(Minecraft.java:2041)
      at net.minecraft.client.Minecraft.func_71411_J(Minecraft.java:1028)
      at net.minecraft.client.Minecraft.func_99999_d(Minecraft.java:345)
      at net.minecraft.client.main.Main.main(SourceFile:120)
      at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
      at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
      at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
      at java.lang.reflect.Method.invoke(Method.java:483)
      at net.minecraft.launchwrapper.Launch.launch(Launch.java:135)
      at net.minecraft.launchwrapper.Launch.main(Launch.java:28)
      
      A detailed walkthrough of the error, its code path and all known details is as follows:
      ---------------------------------------------------------------------------------------
      
      -- Head --
      Stacktrace:
      at net.minecraftforge.fml.client.FMLClientHandler.showGuiScreen(FMLClientHandler.java:478)
      at net.minecraftforge.fml.common.FMLCommonHandler.showGuiScreen(FMLCommonHandler.java:344)
      at net.minecraftforge.fml.common.network.internal.FMLNetworkHandler.openGui(FMLNetworkHandler.java:103)
      at net.minecraft.entity.player.EntityPlayer.openGui(EntityPlayer.java:2295)
      at com.CSC.net.item.batonP.func_111207_a(batonP.java:34)
      at net.minecraft.item.ItemStack.func_111282_a(ItemStack.java:342)
      at net.minecraft.entity.player.EntityPlayer.func_70998_m(EntityPlayer.java:1183)
      at net.minecraft.client.multiplayer.PlayerControllerMP.func_78768_b(PlayerControllerMP.java:478)
      at net.minecraft.client.Minecraft.func_147121_ag(Minecraft.java:1474)
      
      

      Merci d’avance !</entitylivingbase,></entitylivingbase></entitylivingbase>

      1 réponse Dernière réponse Répondre Citer 0
      • Benjamin LoisonB Hors-ligne
        Benjamin Loison
        dernière édition par

        Balai:

        “NoSuchMethodError”, la méthode n’existe pas, “MovingObjectPosition ray = playerIn.rayTrace(4, 0);” rutilises rayTrace différement, observes les sides de la fonction.

        Bâton:

        java.lang.Integer cannot be cast to net.minecraft.client.gui.GuiScreen

        Vérifies les arguments de player.openGui(Main.instance, 6, player.worldObj, (int) player.posX, (int) player.posY, (int) player.posZ); et regardes le code de openGui()

        >! Développeur de Altis-Life (Arma III) sur Minecraft !
        >! Site web     : https://lemnoslife.com

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

          @‘Benjamin Loison’:

          Balai:

          “NoSuchMethodError”, la méthode n’existe pas, “MovingObjectPosition ray = playerIn.rayTrace(4, 0);” rutilises rayTrace différement, observes les sides de la fonction.

          Bâton:

          java.lang.Integer cannot be cast to net.minecraft.client.gui.GuiScreen

          Vérifies les arguments de player.openGui(Main.instance, 6, player.worldObj, (int) player.posX, (int) player.posY, (int) player.posZ); et regardes le code de openGui()

          d’accord merci,
          c’est bizarre pour le balai ça marche nickel en solo…

          Je vais essayer avec le bâton merci 🙂
          Non les arguments du bâton sont bon je penses que ça vient du guihandler:

          
          @Override
          public Object getServerGuiElement(int ID, EntityPlayer player, World world,
          int x, int y, int z) {
          if(ID == 6)
          {
          return null;
          }
          }
          return null;
          }
          
          @Override
          public Object getClientGuiElement(int ID, EntityPlayer player, World world,
          int x, int y, int z) {
          if(ID == 6)
          {
          return new Prison();
          }
          }
          return z;
          }
          
          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

            rayTrace n’existe pas côté serveur. Voire : https://www.minecraftforgefrance.fr/showthread.php?tid=4009

            Et pour ton autre problème, getClientGuiElement doit retourner soit null (pas de gui) soit un GuiScreen.
            Toi tu retournes z si ID ne vaut pas 6. Or z est un int. Donc forcement java.lang.ClassCastException

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

              @‘robin4002’:

              rayTrace n’existe pas côté serveur. Voire : https://www.minecraftforgefrance.fr/showthread.php?tid=4009

              Et pour ton autre problème, getClientGuiElement doit retourner soit null (pas de gui) soit un GuiScreen.
              Toi tu retournes z si ID ne vaut pas 6. Or z est un int. Donc forcement java.lang.ClassCastException

              D’accord merci,

              Mais c’était l’orsque je faisais un clique droit sur le joueur pour ouvrir mon guiPrison que j’ai eu ce crash.

              ça a quand même un rapport le return z; ?

              Pour le raytrace j’ai copier coller les fonctions mais j’ai 5 érreurs (c’est au niveau des returns des fonctions) : The method […] is undefined for […]

              Ma classe:

              
              package com.CSC.net.item;
              
              import com.CSC.net.block.CSCBlocks;
              
              import net.minecraft.block.state.IBlockState;
              import net.minecraft.entity.player.EntityPlayer;
              import net.minecraft.init.Blocks;
              import net.minecraft.item.EnumAction;
              import net.minecraft.item.Item;
              import net.minecraft.item.ItemStack;
              import net.minecraft.util.BlockPos;
              import net.minecraft.util.ChatComponentText;
              import net.minecraft.util.EnumChatFormatting;
              import net.minecraft.util.EnumFacing;
              import net.minecraft.util.MathHelper;
              import net.minecraft.util.MovingObjectPosition;
              import net.minecraft.util.Vec3;
              import net.minecraft.world.World;
              import net.minecraftforge.event.entity.player.PlayerInteractEvent.Action;
              import net.minecraftforge.fml.relauncher.Side;
              import net.minecraftforge.fml.relauncher.SideOnly;
              
              public class balai extends Item {
              
              private BlockPos pos2;
              
                  public int getMaxItemUseDuration(ItemStack stack)
                  {
                      return 32; // durée
                  }
              
                  public EnumAction getItemUseAction(ItemStack stack)
                  {
                      return EnumAction.BOW; // type d'animation
                  }
              
                  public boolean onItemUse(ItemStack stack, EntityPlayer playerIn, World worldIn, BlockPos pos, EnumFacing side, float hitX, float hitY, float hitZ)
                  {
                  pos2 = pos;
                      return false;
                  }
              
                  public ItemStack onItemRightClick(ItemStack itemStackIn, World worldIn, EntityPlayer playerIn)
                  {
                      playerIn.setItemInUse(itemStackIn, this.getMaxItemUseDuration(itemStackIn)); // met l'item en utilisation
                      return itemStackIn;
                  }
              
                  public ItemStack onItemUseFinish(ItemStack stack, World worldIn, EntityPlayer playerIn)
                  {
                  if(!worldIn.isRemote) {
              if(stack != null && stack.getItem() == CSCItems.balai) {
              //MovingObjectPosition ray = playerIn.rayTrace(4, 0);
              MovingObjectPosition ray = this.rayTraceServer(playerIn, 4, 0);
              BlockPos pos = ray.getBlockPos();
              IBlockState state = worldIn.getBlockState(pos);
              System.out.println(pos);
              if(state.getBlock() == CSCBlocks.block_sale && worldIn.getBlockState(new BlockPos(pos.getX(), pos.getY() + 1, pos.getZ())).getBlock() != Blocks.anvil) {
              if(stack.getItemUseAction() == EnumAction.BOW)
              worldIn.setBlockState(new BlockPos(pos.getX(), pos.getY(), pos.getZ()), CSCBlocks.block_propre.getDefaultState());
              }
              else if(worldIn.getBlockState(new BlockPos(pos.getX(), pos.getY() + 1, pos.getZ())).getBlock() == Blocks.anvil)
              {
              playerIn.addChatMessage(new ChatComponentText("Vous ne pouvez pas néttoyez ce bloc car il y a une poubelle dessus, enlevez d'abord la poubelle avant de néttoyer ce bloc !"));
              }
              else
              {
              playerIn.addChatMessage(new ChatComponentText(EnumChatFormatting.RED + "Action impossible."));
              }
              }
                  }
              
                      return stack;
                  }
              
                  public MovingObjectPosition rayTraceServer(EntityPlayer player, double range, float partialTickTime)
                  {
                      Vec3 vec3 = this.getPositionServer(player, partialTickTime);
                      Vec3 vec31 = this.getLookServer(player, partialTickTime);
                      Vec3 vec32 = vec3.addVector(vec31.xCoord * range, vec31.yCoord * range, vec31.zCoord * range);
                      return player.worldObj.func_147447_a(vec3, vec32, false, false, true);// érreur 
                  }
              
                  public Vec3 getLookServer(EntityPlayer player, float p_70676_1_)
                  {
                      float f1;
                      float f2;
                      float f3;
                      float f4;
              
                      if(p_70676_1_ == 1.0F)
                      {
                          f1 = MathHelper.cos(-player.rotationYaw * 0.017453292F - (float)Math.PI);
                          f2 = MathHelper.sin(-player.rotationYaw * 0.017453292F - (float)Math.PI);
                          f3 = -MathHelper.cos(-player.rotationPitch * 0.017453292F);
                          f4 = MathHelper.sin(-player.rotationPitch * 0.017453292F);
                          return Vec3.createVectorHelper(f2 * f3, f4, f1 * f3);// érreur ici
                      }
                      else
                      {
                          f1 = player.prevRotationPitch + (player.rotationPitch - player.prevRotationPitch) * p_70676_1_;
                          f2 = player.prevRotationYaw + (player.rotationYaw - player.prevRotationYaw) * p_70676_1_;
                          f3 = MathHelper.cos(-f2 * 0.017453292F - (float)Math.PI);
                          f4 = MathHelper.sin(-f2 * 0.017453292F - (float)Math.PI);
                          float f5 = -MathHelper.cos(-f1 * 0.017453292F);
                          float f6 = MathHelper.sin(-f1 * 0.017453292F);
                          return Vec3.createVectorHelper(f4 * f5, f6, f3 * f5);// érreur ici
                      }
                  }
              
                  public Vec3 getPositionServer(EntityPlayer player, float p_70666_1_)
                  {
                      if(p_70666_1_ == 1.0F)
                      {
                          return Vec3.createVectorHelper(player.posX, player.posY, player.posZ); // érreur ici
                      }
                      else
                      {
                          double d0 = player.prevPosX + (player.posX - player.prevPosX) * p_70666_1_;
                          double d1 = player.prevPosY + (player.posY - player.prevPosY) * p_70666_1_;
                          double d2 = player.prevPosZ + (player.posZ - player.prevPosZ) * p_70666_1_;
                          return Vec3.createVectorHelper(d0, d1, d2); // érreur ici
                      }
                  }
              
              }
              
              

              Merci 🙂

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

                Décidément sur ce forum y’en a beaucoup qui aiment les fessées (“fessai”).

                Remplace toutes les “Vec3.createVectorHelper(player.posX, player.posY, player.posZ)” par “new Vec3(player.posX, player.posY, player.posZ)”

                Site web contenant mes scripts : http://SCAREXgaming.github.io

                Pas de demandes de support par MP ni par skype SVP.
                Je n'accepte sur skype que l…

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

                  @‘SCAREX’:

                  Décidément sur ce forum y’en a beaucoup qui aiment les fessées (“fessai”).

                  Remplace toutes les “Vec3.createVectorHelper(player.posX, player.posY, player.posZ)” par “new Vec3(player.posX, player.posY, player.posZ)”

                  Aie j’avais pas vu la faute ^^

                  Pour les cev3 du coup c’est bon
                  mais j’ai toujours le problème avec le:

                  
                  return player.worldObj.func_147447_a(vec3, vec32, false, false, true);
                  

                  La fonction existe pas je crois je peux la remplacer par quoi? ou comment réglé le soucis ?

                  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

                    La fonction a surement été mappé en 1.8.
                    Donc elle doit avoir un nom anglais au lieu de func_xxxx

                    Regardes ce que fais la fonction rayTrace et tu sera par quoi il faut la remplacer.

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

                      @‘robin4002’:

                      La fonction a surement été mappé en 1.8.
                      Donc elle doit avoir un nom anglais au lieu de func_xxxx

                      Regardes ce que fais la fonction rayTrace et tu sera par quoi il faut la remplacer.

                      Ah j’ai trouvé ça: return player.worldObj.rayTraceBlocks(vec3, vec32, false, false, true);

                      ça a l’air cohérent .

                      J’essaye je te dis !

                      Bon j’ai essayer en solo ça à l’air bugger.

                      Il faut que je sois absolument sur le bloc pour que il se change en bloc propre sinon il me dis action impossible !

                      Classe:

                      
                      package com.CSC.net.item;
                      
                      import com.CSC.net.block.CSCBlocks;
                      
                      import net.minecraft.block.state.IBlockState;
                      import net.minecraft.entity.player.EntityPlayer;
                      import net.minecraft.init.Blocks;
                      import net.minecraft.item.EnumAction;
                      import net.minecraft.item.Item;
                      import net.minecraft.item.ItemStack;
                      import net.minecraft.util.BlockPos;
                      import net.minecraft.util.ChatComponentText;
                      import net.minecraft.util.EnumChatFormatting;
                      import net.minecraft.util.EnumFacing;
                      import net.minecraft.util.MathHelper;
                      import net.minecraft.util.MovingObjectPosition;
                      import net.minecraft.util.Vec3;
                      import net.minecraft.world.World;
                      import net.minecraftforge.event.entity.player.PlayerInteractEvent.Action;
                      import net.minecraftforge.fml.relauncher.Side;
                      import net.minecraftforge.fml.relauncher.SideOnly;
                      
                      public class balai extends Item {
                      
                      private BlockPos pos2;
                      
                          public int getMaxItemUseDuration(ItemStack stack)
                          {
                              return 32; // durée
                          }
                      
                          public EnumAction getItemUseAction(ItemStack stack)
                          {
                              return EnumAction.BOW; // type d'animation
                          }
                      
                          public boolean onItemUse(ItemStack stack, EntityPlayer playerIn, World worldIn, BlockPos pos, EnumFacing side, float hitX, float hitY, float hitZ)
                          {
                          pos2 = pos;
                              return false;
                          }
                      
                          public ItemStack onItemRightClick(ItemStack itemStackIn, World worldIn, EntityPlayer playerIn)
                          {
                              playerIn.setItemInUse(itemStackIn, this.getMaxItemUseDuration(itemStackIn)); // met l'item en utilisation
                              return itemStackIn;
                          }
                      
                          public ItemStack onItemUseFinish(ItemStack stack, World worldIn, EntityPlayer playerIn)
                          {
                          if(!worldIn.isRemote) {
                      if(stack != null && stack.getItem() == CSCItems.balai) {
                      //MovingObjectPosition ray = playerIn.rayTrace(4, 0);
                      MovingObjectPosition ray = this.rayTraceServer(playerIn, 4D, 0);
                      BlockPos pos = ray.getBlockPos();
                      IBlockState state = worldIn.getBlockState(pos);
                      System.out.println(pos);
                      if(state.getBlock() == CSCBlocks.block_sale && worldIn.getBlockState(new BlockPos(pos.getX(), pos.getY() + 1, pos.getZ())).getBlock() != Blocks.anvil) {
                      if(stack.getItemUseAction() == EnumAction.BOW)
                      worldIn.setBlockState(new BlockPos(pos.getX(), pos.getY(), pos.getZ()), CSCBlocks.block_propre.getDefaultState());
                      }
                      else if(worldIn.getBlockState(new BlockPos(pos.getX(), pos.getY() + 1, pos.getZ())).getBlock() == Blocks.anvil)
                      {
                      playerIn.addChatMessage(new ChatComponentText("Vous ne pouvez pas néttoyez ce bloc car il y a une poubelle dessus, enlevez d'abord la poubelle avant de néttoyer ce bloc !"));
                      }
                      else
                      {
                      playerIn.addChatMessage(new ChatComponentText(EnumChatFormatting.RED + "Action impossible."));
                      }
                      }
                          }
                      
                              return stack;
                          }
                      
                          public MovingObjectPosition rayTraceServer(EntityPlayer player, double range, float partialTickTime)
                          {
                              Vec3 vec3 = this.getPositionServer(player, partialTickTime);
                              Vec3 vec31 = this.getLookServer(player, partialTickTime);
                              Vec3 vec32 = vec3.addVector(vec31.xCoord * range, vec31.yCoord * range, vec31.zCoord * range);
                              return player.worldObj.rayTraceBlocks(vec3, vec32, false, false, true);
                          }
                      
                          public Vec3 getLookServer(EntityPlayer player, float p_70676_1_)
                          {
                              float f1;
                              float f2;
                              float f3;
                              float f4;
                      
                              if(p_70676_1_ == 1.0F)
                              {
                                  f1 = MathHelper.cos(-player.rotationYaw * 0.017453292F - (float)Math.PI);
                                  f2 = MathHelper.sin(-player.rotationYaw * 0.017453292F - (float)Math.PI);
                                  f3 = -MathHelper.cos(-player.rotationPitch * 0.017453292F);
                                  f4 = MathHelper.sin(-player.rotationPitch * 0.017453292F);
                                  return new Vec3(f2 * f3, f4, f1 * f3);
                              }
                              else
                              {
                                  f1 = player.prevRotationPitch + (player.rotationPitch - player.prevRotationPitch) * p_70676_1_;
                                  f2 = player.prevRotationYaw + (player.rotationYaw - player.prevRotationYaw) * p_70676_1_;
                                  f3 = MathHelper.cos(-f2 * 0.017453292F - (float)Math.PI);
                                  f4 = MathHelper.sin(-f2 * 0.017453292F - (float)Math.PI);
                                  float f5 = -MathHelper.cos(-f1 * 0.017453292F);
                                  float f6 = MathHelper.sin(-f1 * 0.017453292F);
                                  return new Vec3(f4 * f5, f6, f3 * f5);
                              }
                          }
                      
                          public Vec3 getPositionServer(EntityPlayer player, float p_70666_1_)
                          {
                              if(p_70666_1_ == 1.0F)
                              {
                                  return new Vec3(player.posX, player.posY, player.posZ);
                              }
                              else
                              {
                                  double d0 = player.prevPosX + (player.posX - player.prevPosX) * p_70666_1_;
                                  double d1 = player.prevPosY + (player.posY - player.prevPosY) * p_70666_1_;
                                  double d2 = player.prevPosZ + (player.posZ - player.prevPosZ) * p_70666_1_;
                                  return new Vec3(d0, d1, d2);
                              }
                          }
                      
                      }
                      
                      

                      Log (les 4 action impossibles sont les 4 faces et le dernier et la face haut du bloc je dois êtres dessus sinon il me return action impossible) :

                      
                      [13:30:55] [Server thread/INFO] [STDOUT]: [com.CSC.net.item.balai:onItemUseFinish:58]: BlockPos{x=-232, y=65, z=230}
                      [13:30:55] [Client thread/INFO]: [CHAT] §cAction impossible.
                      [13:30:58] [Server thread/INFO] [STDOUT]: [com.CSC.net.item.balai:onItemUseFinish:58]: BlockPos{x=-235, y=65, z=230}
                      [13:30:58] [Client thread/INFO]: [CHAT] §cAction impossible.
                      [13:31:01] [Server thread/INFO] [STDOUT]: [com.CSC.net.item.balai:onItemUseFinish:58]: BlockPos{x=-237, y=65, z=230}
                      [13:31:01] [Client thread/INFO]: [CHAT] §cAction impossible.
                      [13:31:05] [Server thread/INFO] [STDOUT]: [com.CSC.net.item.balai:onItemUseFinish:58]: BlockPos{x=-236, y=65, z=233}
                      [13:31:05] [Client thread/INFO]: [CHAT] §cAction impossible.
                      [13:31:09] [Server thread/INFO] [STDOUT]: [com.CSC.net.item.balai:onItemUseFinish:58]: BlockPos{x=-235, y=66, z=231}
                      
                      
                      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

                        Sinon fait le rayTrace normal en client et passes par un paquet. Je pense que ça sera plus simple x)

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

                          @‘robin4002’:

                          Sinon fait le rayTrace normal en client et passes par un paquet. Je pense que ça sera plus simple x)

                          Ouais grave 😄

                          edit:

                          Bon alors le packet doit être enregistrer côté client et envoyer côté serveur c’est ça?

                          J’ai fais ça: (ça marche pas le system.ou n’est même pas appeler dans les logs.

                          network.registerMessage(PacketBalai.Handler.class, PacketBalai.class, 2, Side.CLIENT);
                          
                          
                          package com.CSC.net.packet;
                          
                          import com.CSC.net.block.CSCBlocks;
                          
                          import io.netty.buffer.ByteBuf;
                          import net.minecraft.block.state.IBlockState;
                          import net.minecraft.client.Minecraft;
                          import net.minecraft.entity.player.EntityPlayer;
                          import net.minecraft.init.Blocks;
                          import net.minecraft.item.EnumAction;
                          import net.minecraft.util.BlockPos;
                          import net.minecraft.util.ChatComponentText;
                          import net.minecraft.util.EnumChatFormatting;
                          import net.minecraft.util.MovingObjectPosition;
                          import net.minecraftforge.fml.common.network.simpleimpl.IMessage;
                          import net.minecraftforge.fml.common.network.simpleimpl.IMessageHandler;
                          import net.minecraftforge.fml.common.network.simpleimpl.MessageContext;
                          import net.minecraftforge.fml.relauncher.Side;
                          import net.minecraftforge.fml.relauncher.SideOnly;
                          
                          public class PacketBalai implements IMessage{
                          
                          public PacketBalai()
                          {
                          
                          }
                          
                          @Override
                          public void fromBytes(ByteBuf buf) 
                          {
                          
                          }
                          
                          @Override
                          public void toBytes(ByteBuf buf) 
                          {
                          
                          }
                          
                          public static class Handler implements IMessageHandler <packetbalai, imessage="">{
                          @SideOnly(Side.CLIENT)
                          @Override
                             public IMessage onMessage(PacketBalai message, MessageContext ctx) 
                             {
                          System.out.println("");
                          EntityPlayer playerIn = Minecraft.getMinecraft().thePlayer;
                          
                          MovingObjectPosition ray = playerIn.rayTrace(4, 0);
                          BlockPos pos = ray.getBlockPos();
                          IBlockState state = playerIn.worldObj.getBlockState(pos);
                          System.out.println(pos);
                          if(state.getBlock() == CSCBlocks.block_sale && playerIn.worldObj.getBlockState(new BlockPos(pos.getX(), pos.getY() + 1, pos.getZ())).getBlock() != Blocks.anvil) {
                          if(playerIn.getItemInUse().getItemUseAction() == EnumAction.BOW)
                          playerIn.worldObj.setBlockState(new BlockPos(pos.getX(), pos.getY(), pos.getZ()), CSCBlocks.block_propre.getDefaultState());
                          }
                          else if(playerIn.worldObj.getBlockState(new BlockPos(pos.getX(), pos.getY() + 1, pos.getZ())).getBlock() == Blocks.anvil)
                          {
                          playerIn.addChatMessage(new ChatComponentText("Vous ne pouvez pas néttoyez ce bloc car il y a une poubelle dessus, enlevez d'abord la poubelle avant de néttoyer ce bloc !"));
                          }
                          else
                          {
                          playerIn.addChatMessage(new ChatComponentText(EnumChatFormatting.RED + "Action impossible."));
                          }
                          return null;
                          
                             }
                          }
                          
                          }
                          
                          
                          
                          package com.CSC.net.item;
                          
                          import com.CSC.net.Main;
                          import com.CSC.net.block.CSCBlocks;
                          import com.CSC.net.packet.PacketBalai;
                          
                          import net.minecraft.block.state.IBlockState;
                          import net.minecraft.entity.player.EntityPlayer;
                          import net.minecraft.entity.player.EntityPlayerMP;
                          import net.minecraft.init.Blocks;
                          import net.minecraft.item.EnumAction;
                          import net.minecraft.item.Item;
                          import net.minecraft.item.ItemStack;
                          import net.minecraft.util.BlockPos;
                          import net.minecraft.util.ChatComponentText;
                          import net.minecraft.util.EnumChatFormatting;
                          import net.minecraft.util.EnumFacing;
                          import net.minecraft.util.MovingObjectPosition;
                          import net.minecraft.util.Vec3;
                          import net.minecraft.world.World;
                          import net.minecraftforge.event.entity.player.PlayerInteractEvent.Action;
                          import net.minecraftforge.fml.relauncher.Side;
                          import net.minecraftforge.fml.relauncher.SideOnly;
                          
                          public class balai extends Item {
                          
                          private BlockPos pos2;
                          
                              public int getMaxItemUseDuration(ItemStack stack)
                              {
                                  return 32; // durée
                              }
                          
                              public EnumAction getItemUseAction(ItemStack stack)
                              {
                                  return EnumAction.BOW; // type d'animation
                              }
                          
                              public boolean onItemUse(ItemStack stack, EntityPlayer playerIn, World worldIn, BlockPos pos, EnumFacing side, float hitX, float hitY, float hitZ)
                              {
                              pos2 = pos;
                                  return false;
                              }
                          
                              public ItemStack onItemRightClick(ItemStack itemStackIn, World worldIn, EntityPlayer playerIn)
                              {
                                  playerIn.setItemInUse(itemStackIn, this.getMaxItemUseDuration(itemStackIn)); // met l'item en utilisation
                                  return itemStackIn;
                              }
                          
                              public ItemStack onItemUseFinish(ItemStack stack, World worldIn, EntityPlayer playerIn)
                              {
                              if(!worldIn.isRemote) {
                          if(stack != null && stack.getItem() == CSCItems.balai) {
                          EntityPlayerMP p = (EntityPlayerMP)playerIn;
                          Main.network.sendToServer(new PacketBalai());
                          }
                              }
                          
                                  return stack;
                              }
                          
                          }
                          
                          ```</packetbalai,>
                          1 réponse Dernière réponse Répondre Citer 0
                          • GabsG Hors-ligne
                            Gabs
                            dernière édition par

                            Quelqu’un ?

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

                              Fait attention à ce que tu fait :

                              public ItemStack onItemUseFinish(ItemStack stack, World worldIn, EntityPlayer playerIn
                              {
                                  if(!worldIn.isRemote) {                                        //Si on est coté serveur
                                      if(stack != null && stack.getItem() == CSCItems.balai) {
                                          EntityPlayerMP p = (EntityPlayerMP)playerIn;
                                          Main.network.[size=large**sendToServer**](new PacketBalai());       //Envoyer le packet au serveur
                                      }
                                  }
                                  return stack;
                              }
                              
                              @SideOnly([size=large**Side.CLIENT**]) //Réception du message coté client
                              @Override
                              public IMessage onMessage(PacketBalai message, MessageContext ctx) 
                              {
                                  …
                              

                              et enfin

                              network.registerMessage(PacketBalai.Handler.class, PacketBalai.class, 2, **%(#ff3333)[Side.CLIENT]**); //Message recevable par le client
                              

                              De plus,le but du packet et de faire le “rayTrace” coté client puis d’envoyer les infos au serveur. Là tu envoi rien au serveur puis tu demande au serveur de faire le “rayTrace”.

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

                                " Là tu envoi rien au serveur puis tu demande au serveur de faire le “rayTrace”. "

                                Je comprends pas.

                                Mon packet est enregistrer côté client et il est sendtoserver donc envoyer côté serveur non?

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

                                  @‘floriangabet’:

                                  " Là tu envoi rien au serveur puis tu demande au serveur de faire le “rayTrace”. "

                                  Je comprends pas.

                                  Mon packet est enregistrer côté client et il est sendtoserver donc envoyer côté serveur non?

                                  Je recommence :
                                  Quand tu as enregistré ton packet :

                                  network.registerMessage(PacketBalai.Handler.class, PacketBalai.class, 2, **%(#ff3333)[Side.CLIENT]**);
                                  

                                  Là, tu a enregistrer le packet en disant qui peut être reçu Coté Client alors que tu veux qu’il soit reçu par le serveur il faut donc mettre “Side.SERVER”.

                                  Ensuite :
                                  Dans le MessageHandler de ton packet :

                                  @SideOnly([size=medium**Side.CLIENT**]) //Réception du message coté client
                                  @Overrid
                                  public IMessage onMessage(PacketBalai message, MessageContext ctx) 
                                  {
                                      System.out.println("")
                                      EntityPlayer playerIn = Minecraft.getMinecraft().thePlayer;
                                  
                                      …
                                  
                                  }
                                  
                                  

                                  Là, tu met la méthode en SideOnly Client donc seul le client peut recevoir le message. Là encore; Il faut mettre “Side.SERVER”.

                                  De plus, dans ton item :

                                  public ItemStack onItemUseFinish(ItemStack stack, World worldIn, EntityPlayer player)
                                  {
                                      if(!worldIn.isRemote) {                                        //Si on est coté serveur
                                          if(stack != null && stack.getItem() == CSCItems.balai) {
                                              EntityPlayerMP p = (EntityPlayerMP)playerIn;
                                              Main.network.[size=medium**sendToServer**](new PacketBalai());       //Envoyer le packet au serveur
                                          }
                                  
                                      }
                                      return stack;
                                  }
                                  
                                  

                                  Ici, tu dis que si on est coté serveur, on envoie le packet vers le serveur. Il faut que tu mette if(worldIn.isRemote) ( = si on est coté client)

                                  Et enfin on ta dit que tu devais utiliser les packets. C’est parce que le serveur ne peut pas faire “rayTrace” il faut donc que dans ton onItemUseFinish, si on est coté client, tu fait le rayTrace, tu get la position du block puis tu envoie la position au serveur. Le serveur, à la réception du message vas regarder le block à la position reçue et va faire tout le reste.

                                  EDIT :

                                  Le packet et le “rayTrace” on pas laire utiles finalement : tu à une variable “pos2” qui ne te ser pour l’instant à rien mais si tu l’enregistre dans les NBT Data de ton item, tu peut t’en servir dans “onItemUseFinish” pour directement avoir la position sans passer par packet+rayTrace.

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

                                    La variable pos2 tu la vois ouuu?

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

                                      Dans la class de ton item :
                                      Tu as la variable pos2 qui est mise à jour dans “onItemUse”.
                                      Au lieu de la mettre comme une variable simple de la class de ton item, tu peut l’enregistrer dans la NBT tag de ton item et l’utiliser dans “onItemUseFinish” directement coté serveur.

                                      EDIT :
                                      Non, finalement, oublie ce que je viens de dire, la fonction “onItemUse” n’est appelée qu’une seule fois quand on reste appuyé sur click droit.

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

                                        @‘LeBossMax2’:

                                        Dans la class de ton item :
                                        Tu as la variable pos2 qui est mise à jour dans “onItemUse”.
                                        Au lieu de la mettre comme une variable simple de la class de ton item, tu peut l’enregistrer dans la NBT tag de ton item et l’utiliser dans “onItemUseFinish” directement coté serveur.

                                        EDIT :
                                        Non, finalement, oublie ce que je viens de dire, la fonction “onItemUse” n’est appelée qu’une seule fois quand on reste appuyé sur click droit.

                                        Ok du coup j’ai fais se que tu ma dis avec le packet j’ai un crash:

                                        
                                        [17:09:05] [Client thread/FATAL] [FML]: Exception caught executing FutureTask: java.util.concurrent.ExecutionException: java.lang.ClassCastException: net.minecraft.client.entity.EntityPlayerSP cannot be cast to net.minecraft.entity.player.EntityPlayerMP
                                        java.util.concurrent.ExecutionException: java.lang.ClassCastException: net.minecraft.client.entity.EntityPlayerSP cannot be cast to net.minecraft.entity.player.EntityPlayerMP
                                        at java.util.concurrent.FutureTask.report(FutureTask.java:122) ~[?:1.8.0_45]
                                        at java.util.concurrent.FutureTask.get(FutureTask.java:192) ~[?:1.8.0_45]
                                        at net.minecraftforge.fml.common.FMLCommonHandler.callFuture(FMLCommonHandler.java:710) [FMLCommonHandler.class:?]
                                        at net.minecraft.client.Minecraft.runGameLoop(Minecraft.java:1070) [Minecraft.class:?]
                                        at net.minecraft.client.Minecraft.run(Minecraft.java:376) [Minecraft.class:?]
                                        at net.minecraft.client.main.Main.main(Main.java:117) [Main.class:?]
                                        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:1.8.0_45]
                                        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[?:1.8.0_45]
                                        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[?:1.8.0_45]
                                        at java.lang.reflect.Method.invoke(Method.java:497) ~[?:1.8.0_45]
                                        at net.minecraft.launchwrapper.Launch.launch(Launch.java:135) [launchwrapper-1.11.jar:?]
                                        at net.minecraft.launchwrapper.Launch.main(Launch.java:28) [launchwrapper-1.11.jar:?]
                                        at net.minecraftforge.gradle.GradleStartCommon.launch(Unknown Source) [start/:?]
                                        at GradleStart.main(Unknown Source) [start/:?]
                                        Caused by: java.lang.ClassCastException: net.minecraft.client.entity.EntityPlayerSP cannot be cast to net.minecraft.entity.player.EntityPlayerMP
                                        at com.CSC.net.item.balai.onItemUseFinish(balai.java:56) ~[balai.class:?]
                                        at net.minecraft.item.ItemStack.onItemUseFinish(ItemStack.java:176) ~[ItemStack.class:?]
                                        at net.minecraft.entity.player.EntityPlayer.onItemUseFinish(EntityPlayer.java:493) ~[EntityPlayer.class:?]
                                        at net.minecraft.entity.player.EntityPlayer.handleHealthUpdate(EntityPlayer.java:516) ~[EntityPlayer.class:?]
                                        at net.minecraft.client.network.NetHandlerPlayClient.handleEntityStatus(NetHandlerPlayClient.java:1038) ~[NetHandlerPlayClient.class:?]
                                        at net.minecraft.network.play.server.S19PacketEntityStatus.func_180736_a(S19PacketEntityStatus.java:47) ~[S19PacketEntityStatus.class:?]
                                        at net.minecraft.network.play.server.S19PacketEntityStatus.processPacket(S19PacketEntityStatus.java:67) ~[S19PacketEntityStatus.class:?]
                                        at net.minecraft.network.PacketThreadUtil$1.run(PacketThreadUtil.java:24) ~[PacketThreadUtil$1.class:?]
                                        at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) ~[?:1.8.0_45]
                                        at java.util.concurrent.FutureTask.run(FutureTask.java:266) ~[?:1.8.0_45]
                                        at net.minecraftforge.fml.common.FMLCommonHandler.callFuture(FMLCommonHandler.java:709) ~[FMLCommonHandler.class:?]
                                        … 11 more
                                        [17:09:05] [Server thread/INFO]: Stopping server
                                        [17:09:05] [Server thread/INFO]: Saving players
                                        [17:09:05] [Server thread/INFO]: Saving worlds
                                        [17:09:05] [Server thread/INFO]: Saving chunks for level 'New World'/Overworld
                                        [17:09:05] [Server thread/INFO]: Saving chunks for level 'New World'/Nether
                                        [17:09:05] [Server thread/INFO]: Saving chunks for level 'New World'/The End
                                        [17:09:06] [Server thread/INFO] [FML]: Unloading dimension 0
                                        [17:09:06] [Server thread/INFO] [FML]: Unloading dimension -1
                                        [17:09:06] [Server thread/INFO] [FML]: Unloading dimension 1
                                        [17:09:06] [Server thread/INFO] [FML]: Applying holder lookups
                                        [17:09:06] [Server thread/INFO] [FML]: Holder lookups applied
                                        [17:09:06] [Client thread/FATAL]: Reported exception thrown!
                                        net.minecraft.util.ReportedException: Ticking entity
                                        at net.minecraft.world.World.updateEntities(World.java:1830) ~[World.class:?]
                                        at net.minecraft.client.Minecraft.runTick(Minecraft.java:2176) ~[Minecraft.class:?]
                                        at net.minecraft.client.Minecraft.runGameLoop(Minecraft.java:1080) ~[Minecraft.class:?]
                                        at net.minecraft.client.Minecraft.run(Minecraft.java:376) [Minecraft.class:?]
                                        at net.minecraft.client.main.Main.main(Main.java:117) [Main.class:?]
                                        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:1.8.0_45]
                                        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[?:1.8.0_45]
                                        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[?:1.8.0_45]
                                        at java.lang.reflect.Method.invoke(Method.java:497) ~[?:1.8.0_45]
                                        at net.minecraft.launchwrapper.Launch.launch(Launch.java:135) [launchwrapper-1.11.jar:?]
                                        at net.minecraft.launchwrapper.Launch.main(Launch.java:28) [launchwrapper-1.11.jar:?]
                                        at net.minecraftforge.gradle.GradleStartCommon.launch(Unknown Source) [start/:?]
                                        at GradleStart.main(Unknown Source) [start/:?]
                                        Caused by: java.lang.ClassCastException: net.minecraft.client.entity.EntityPlayerSP cannot be cast to net.minecraft.entity.player.EntityPlayerMP
                                        at com.CSC.net.item.balai.onItemUseFinish(balai.java:56) ~[balai.class:?]
                                        at net.minecraft.item.ItemStack.onItemUseFinish(ItemStack.java:176) ~[ItemStack.class:?]
                                        at net.minecraft.entity.player.EntityPlayer.onItemUseFinish(EntityPlayer.java:493) ~[EntityPlayer.class:?]
                                        at net.minecraft.entity.player.EntityPlayer.onUpdate(EntityPlayer.java:276) ~[EntityPlayer.class:?]
                                        at net.minecraft.client.entity.EntityPlayerSP.onUpdate(EntityPlayerSP.java:165) ~[EntityPlayerSP.class:?]
                                        at net.minecraft.world.World.updateEntityWithOptionalForce(World.java:2024) ~[World.class:?]
                                        at net.minecraft.world.World.updateEntity(World.java:1990) ~[World.class:?]
                                        at net.minecraft.world.World.updateEntities(World.java:1816) ~[World.class:?]
                                        … 12 more
                                        [17:09:06] [Client thread/INFO] [STDOUT]: [net.minecraft.init.Bootstrap:printToSYSOUT:660]: –-- Minecraft Crash Report ----
                                        // Who set us up the TNT?
                                        
                                        Time: 23/10/16 17:09
                                        Description: Ticking entity
                                        
                                        java.lang.ClassCastException: net.minecraft.client.entity.EntityPlayerSP cannot be cast to net.minecraft.entity.player.EntityPlayerMP
                                        at com.CSC.net.item.balai.onItemUseFinish(balai.java:56)
                                        at net.minecraft.item.ItemStack.onItemUseFinish(ItemStack.java:176)
                                        at net.minecraft.entity.player.EntityPlayer.onItemUseFinish(EntityPlayer.java:493)
                                        at net.minecraft.entity.player.EntityPlayer.onUpdate(EntityPlayer.java:276)
                                        at net.minecraft.client.entity.EntityPlayerSP.onUpdate(EntityPlayerSP.java:165)
                                        at net.minecraft.world.World.updateEntityWithOptionalForce(World.java:2024)
                                        at net.minecraft.world.World.updateEntity(World.java:1990)
                                        at net.minecraft.world.World.updateEntities(World.java:1816)
                                        at net.minecraft.client.Minecraft.runTick(Minecraft.java:2176)
                                        at net.minecraft.client.Minecraft.runGameLoop(Minecraft.java:1080)
                                        at net.minecraft.client.Minecraft.run(Minecraft.java:376)
                                        at net.minecraft.client.main.Main.main(Main.java:117)
                                        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
                                        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
                                        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
                                        at java.lang.reflect.Method.invoke(Method.java:497)
                                        at net.minecraft.launchwrapper.Launch.launch(Launch.java:135)
                                        at net.minecraft.launchwrapper.Launch.main(Launch.java:28)
                                        at net.minecraftforge.gradle.GradleStartCommon.launch(Unknown Source)
                                        at GradleStart.main(Unknown Source)
                                        
                                        A detailed walkthrough of the error, its code path and all known details is as follows:
                                        ---------------------------------------------------------------------------------------
                                        
                                        -- Head --
                                        Stacktrace:
                                        at com.CSC.net.item.balai.onItemUseFinish(balai.java:56)
                                        at net.minecraft.item.ItemStack.onItemUseFinish(ItemStack.java:176)
                                        at net.minecraft.entity.player.EntityPlayer.onItemUseFinish(EntityPlayer.java:493)
                                        at net.minecraft.entity.player.EntityPlayer.onUpdate(EntityPlayer.java:276)
                                        at net.minecraft.client.entity.EntityPlayerSP.onUpdate(EntityPlayerSP.java:165)
                                        at net.minecraft.world.World.updateEntityWithOptionalForce(World.java:2024)
                                        at net.minecraft.world.World.updateEntity(World.java:1990)
                                        
                                        -- Entity being ticked --
                                        Details:
                                        Entity Type: null (net.minecraft.client.entity.EntityPlayerSP)
                                        Entity ID: 315
                                        Entity Name: floriangabet
                                        Entity's Exact location: -231,31, 66,00, 231,69
                                        Entity's Block location: -232,00,66,00,231,00 - World: (-232,66,231), Chunk: (at 8,4,7 in -15,14; contains blocks -240,0,224 to -225,255,239), Region: (-1,0; contains chunks -32,0 to -1,31, blocks -512,0,0 to -1,255,511)
                                        Entity's Momentum: 0,00, -0,08, 0,00
                                        Entity's Rider: ~~ERROR~~ NullPointerException: null
                                        Entity's Vehicle: ~~ERROR~~ NullPointerException: null
                                        Stacktrace:
                                        at net.minecraft.world.World.updateEntities(World.java:1816)
                                        
                                        -- Affected level --
                                        Details:
                                        Level name: MpServer
                                        All players: 1 total; [EntityPlayerSP['floriangabet'/315, l='MpServer', x=-231,31, y=66,00, z=231,69]]
                                        Chunk stats: MultiplayerChunkCache: 289, 289
                                        Level seed: 0
                                        Level generator: ID 00 - default, ver 1\. Features enabled: false
                                        Level generator options: 
                                        Level spawn location: -228,00,64,00,228,00 - World: (-228,64,228), Chunk: (at 12,4,4 in -15,14; contains blocks -240,0,224 to -225,255,239), Region: (-1,0; contains chunks -32,0 to -1,31, blocks -512,0,0 to -1,255,511)
                                        Level time: 2037444 game time, 3782 day time
                                        Level dimension: 0
                                        Level storage version: 0x00000 - Unknown?
                                        Level weather: Rain time: 0 (now: false), thunder time: 0 (now: false)
                                        Level game mode: Game mode: creative (ID 1). Hardcore: false. Cheats: false
                                        Forced entities: 94 total; [EntityZombie['Zombie'/256, l='MpServer', x=-188,00, y=39,00, z=294,78], EntityZombie['Zombie'/128, l='MpServer', x=-296,50, y=40,00, z=191,50], EntitySkeleton['Squelette'/257, l='MpServer', x=-187,59, y=59,00, z=291,28], EntityCreeper['Creeper'/129, l='MpServer', x=-297,53, y=39,00, z=192,06], EntitySheep['Mouton'/130, l='MpServer', x=-293,44, y=71,00, z=203,63], EntityBat['Chauve-souris'/131, l='MpServer', x=-290,09, y=28,10, z=211,53], EntityZombie['Zombie'/132, l='MpServer', x=-299,41, y=29,00, z=211,28], EntitySheep['Mouton'/133, l='MpServer', x=-299,13, y=71,00, z=220,09], EntityItem['item.item.bone'/135, l='MpServer', x=-294,31, y=64,00, z=234,34], EntitySkeleton['Squelette'/263, l='MpServer', x=-170,66, y=47,00, z=159,28], EntitySquid['Poulpe'/136, l='MpServer', x=-289,84, y=62,39, z=261,77], EntitySkeleton['Squelette'/264, l='MpServer', x=-171,78, y=47,00, z=161,25], EntitySheep['Mouton'/137, l='MpServer', x=-302,78, y=68,00, z=274,09], EntitySkeleton['Squelette'/265, l='MpServer', x=-167,94, y=47,00, z=165,44], EntityMinecartChest['container.minecart'/266, l='MpServer', x=-165,53, y=26,00, z=245,78], EntityZombie['Zombie'/267, l='MpServer', x=-174,78, y=38,00, z=253,25], EntityZombie['Zombie'/268, l='MpServer', x=-177,44, y=28,00, z=262,56], EntityZombie['Zombie'/271, l='MpServer', x=-152,44, y=38,00, z=159,91], EntityCreeper['Creeper'/273, l='MpServer', x=-152,72, y=25,00, z=184,69], EntitySkeleton['Squelette'/274, l='MpServer', x=-159,56, y=30,00, z=231,91], EntityBat['Chauve-souris'/149, l='MpServer', x=-286,81, y=45,50, z=202,59], EntitySquid['Poulpe'/150, l='MpServer', x=-278,77, y=48,34, z=249,07], EntitySquid['Poulpe'/151, l='MpServer', x=-274,47, y=54,66, z=255,99], EntitySheep['Mouton'/158, l='MpServer', x=-267,13, y=66,00, z=156,81], EntitySheep['Mouton'/159, l='MpServer', x=-270,50, y=64,00, z=164,88], EntitySheep['Mouton'/160, l='MpServer', x=-266,19, y=71,00, z=205,25], EntitySheep['Mouton'/161, l='MpServer', x=-264,97, y=71,00, z=209,91], EntitySkeleton['Squelette'/162, l='MpServer', x=-260,88, y=56,00, z=252,50], EntitySkeleton['Squelette'/163, l='MpServer', x=-262,13, y=22,00, z=271,47], EntityCreeper['Creeper'/164, l='MpServer', x=-262,53, y=20,00, z=267,00], EntityCreeper['Creeper'/165, l='MpServer', x=-256,63, y=31,00, z=264,81], EntityZombie['Zombie'/166, l='MpServer', x=-257,50, y=53,00, z=257,56], EntitySheep['Mouton'/169, l='MpServer', x=-246,09, y=68,00, z=152,38], EntityCreeper['Creeper'/170, l='MpServer', x=-252,78, y=17,00, z=162,66], EntityCreeper['Creeper'/171, l='MpServer', x=-253,44, y=16,00, z=163,53], EntitySkeleton['Squelette'/172, l='MpServer', x=-253,56, y=16,17, z=164,91], EntitySpider['Araignée'/173, l='MpServer', x=-253,56, y=16,00, z=164,91], EntityCreeper['Creeper'/174, l='MpServer', x=-245,72, y=16,00, z=169,38], EntityBat['Chauve-souris'/175, l='MpServer', x=-241,44, y=42,10, z=221,25], EntitySkeleton['Squelette'/176, l='MpServer', x=-241,56, y=42,00, z=225,09], EntitySkeleton['Squelette'/177, l='MpServer', x=-240,75, y=42,00, z=225,69], EntitySkeleton['Squelette'/178, l='MpServer', x=-240,28, y=42,00, z=227,44], EntitySkeleton['Squelette'/179, l='MpServer', x=-252,47, y=62,00, z=249,88], EntityBat['Chauve-souris'/180, l='MpServer', x=-240,25, y=65,10, z=244,41], EntityBat['Chauve-souris'/181, l='MpServer', x=-242,41, y=65,10, z=244,25], EntityBat['Chauve-souris'/182, l='MpServer', x=-246,25, y=19,10, z=256,75], EntityBat['Chauve-souris'/183, l='MpServer', x=-246,25, y=19,10, z=256,25], EntityCreeper['Creeper'/184, l='MpServer', x=-252,56, y=23,00, z=275,28], EntityPlayerSP['floriangabet'/315, l='MpServer', x=-231,31, y=66,00, z=231,69], EntityBat['Chauve-souris'/189, l='MpServer', x=-233,31, y=47,10, z=250,59], EntityBat['Chauve-souris'/190, l='MpServer', x=-228,31, y=48,10, z=247,50], EntityMinecartChest['container.minecart'/191, l='MpServer', x=-225,50, y=28,06, z=267,47], EntityPig['Cochon'/192, l='MpServer', x=-223,91, y=64,00, z=273,78], EntitySheep['Mouton'/204, l='MpServer', x=-209,41, y=66,00, z=158,47], EntityBat['Chauve-souris'/205, l='MpServer', x=-212,50, y=63,13, z=173,78], EntitySheep['Mouton'/206, l='MpServer', x=-219,56, y=68,00, z=175,53], EntitySheep['Mouton'/207, l='MpServer', x=-219,56, y=68,00, z=174,44], EntitySheep['Mouton'/208, l='MpServer', x=-219,56, y=68,00, z=174,44], EntitySheep['Mouton'/209, l='MpServer', x=-217,09, y=66,00, z=184,44], EntityCreeper['Creeper'/210, l='MpServer', x=-209,56, y=39,00, z=199,06], EntitySheep['Mouton'/211, l='MpServer', x=-215,72, y=64,00, z=207,22], EntitySheep['Mouton'/212, l='MpServer', x=-212,72, y=64,00, z=199,81], EntityMinecartChest['container.minecart'/213, l='MpServer', x=-217,50, y=29,00, z=247,72], EntityBat['Chauve-souris'/214, l='MpServer', x=-221,25, y=45,10, z=246,75], EntityZombie['Zombie'/215, l='MpServer', x=-219,84, y=29,00, z=267,81], EntitySheep['Mouton'/216, l='MpServer', x=-209,66, y=67,00, z=274,53], EntitySheep['Mouton'/217, l='MpServer', x=-221,16, y=71,00, z=295,19], EntitySheep['Mouton'/229, l='MpServer', x=-200,13, y=63,00, z=154,16], EntitySheep['Mouton'/230, l='MpServer', x=-193,69, y=63,55, z=153,44], EntityBat['Chauve-souris'/231, l='MpServer', x=-196,84, y=15,10, z=162,78], EntityBat['Chauve-souris'/232, l='MpServer', x=-199,16, y=14,44, z=169,09], EntityBat['Chauve-souris'/233, l='MpServer', x=-201,31, y=47,00, z=163,03], EntityBat['Chauve-souris'/234, l='MpServer', x=-202,06, y=12,88, z=179,31], EntityCreeper['Creeper'/235, l='MpServer', x=-205,44, y=13,00, z=181,69], EntityCreeper['Creeper'/236, l='MpServer', x=-201,50, y=12,00, z=178,44], EntityCreeper['Creeper'/237, l='MpServer', x=-204,60, y=13,00, z=181,66], EntitySkeleton['Squelette'/238, l='MpServer', x=-204,34, y=13,00, z=180,78], EntityBat['Chauve-souris'/239, l='MpServer', x=-208,63, y=42,11, z=189,13], EntityBat['Chauve-souris'/240, l='MpServer', x=-208,50, y=41,97, z=193,25], EntitySkeleton['Squelette'/241, l='MpServer', x=-200,94, y=26,00, z=254,41], EntityPig['Cochon'/242, l='MpServer', x=-205,59, y=64,00, z=262,25], EntitySpider['Araignée'/243, l='MpServer', x=-196,31, y=39,00, z=296,19], EntityCreeper['Creeper'/117, l='MpServer', x=-307,53, y=39,00, z=191,88], EntitySkeleton['Squelette'/118, l='MpServer', x=-307,50, y=39,00, z=190,91], EntityCreeper['Creeper'/248, l='MpServer', x=-184,50, y=15,00, z=246,50], EntityEnderman['Enderman'/249, l='MpServer', x=-185,50, y=23,00, z=261,72], EntityEnderman['Enderman'/250, l='MpServer', x=-187,16, y=23,00, z=262,38], EntityWitch['Sorcière'/251, l='MpServer', x=-186,53, y=26,00, z=271,88], EntityZombie['Zombie'/252, l='MpServer', x=-177,72, y=39,00, z=257,31], EntitySheep['Mouton'/253, l='MpServer', x=-192,09, y=66,00, z=265,22], EntitySkeleton['Squelette'/254, l='MpServer', x=-188,81, y=29,00, z=296,16], EntitySheep['Mouton'/126, l='MpServer', x=-289,50, y=66,00, z=172,25], EntityZombie['Zombie'/255, l='MpServer', x=-187,00, y=39,00, z=294,31], EntityZombie['Zombie'/127, l='MpServer', x=-296,53, y=22,00, z=177,72]]
                                        Retry entities: 0 total; []
                                        Server brand: fml,forge
                                        Server type: Integrated singleplayer server
                                        Stacktrace:
                                        at net.minecraft.client.multiplayer.WorldClient.addWorldInfoToCrashReport(WorldClient.java:392)
                                        at net.minecraft.client.Minecraft.addGraphicsAndWorldToCrashReport(Minecraft.java:2600)
                                        at net.minecraft.client.Minecraft.run(Minecraft.java:398)
                                        at net.minecraft.client.main.Main.main(Main.java:117)
                                        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
                                        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
                                        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
                                        at java.lang.reflect.Method.invoke(Method.java:497)
                                        at net.minecraft.launchwrapper.Launch.launch(Launch.java:135)
                                        at net.minecraft.launchwrapper.Launch.main(Launch.java:28)
                                        at net.minecraftforge.gradle.GradleStartCommon.launch(Unknown Source)
                                        at GradleStart.main(Unknown Source)
                                        
                                        – System Details --
                                        Details:
                                        Minecraft Version: 1.8
                                        Operating System: Windows 7 (x86) version 6.1
                                        Java Version: 1.8.0_45, Oracle Corporation
                                        Java VM Version: Java HotSpot(TM) Client VM (mixed mode), Oracle Corporation
                                        Memory: 679879200 bytes (648 MB) / 1037959168 bytes (989 MB) up to 1037959168 bytes (989 MB)
                                        JVM Flags: 3 total; -Xincgc -Xmx1024M -Xms1024M
                                        IntCache: cache: 0, tcache: 0, allocated: 13, tallocated: 95
                                        FML: MCP v9.10 FML v8.0.37.1334 Minecraft Forge 11.14.1.1334 4 mods loaded, 4 mods active
                                        mcp{9.05} [Minecraft Coder Pack] (minecraft.jar) Unloaded->Constructed->Pre-initialized->Initialized->Post-initialized->Available->Available->Available->Available
                                        FML{8.0.37.1334} [Forge Mod Loader] (forgeSrc-1.8-11.14.1.1334.jar) Unloaded->Constructed->Pre-initialized->Initialized->Post-initialized->Available->Available->Available->Available
                                        Forge{11.14.1.1334} [Minecraft Forge] (forgeSrc-1.8-11.14.1.1334.jar) Unloaded->Constructed->Pre-initialized->Initialized->Post-initialized->Available->Available->Available->Available
                                        csc{1.0} [Cite Sous Controle] (bin) Unloaded->Constructed->Pre-initialized->Initialized->Post-initialized->Available->Available->Available->Available
                                        Loaded coremods (and transformers): 
                                        Launched Version: 1.8
                                        LWJGL: 2.9.1
                                        OpenGL: GeForce GTX 960/PCIe/SSE2 GL version 4.5.0 NVIDIA 368.39, NVIDIA Corporation
                                        GL Caps: Using GL 1.3 multitexturing.
                                        Using GL 1.3 texture combiners.
                                        Using framebuffer objects because OpenGL 3.0 is supported and separate blending is supported.
                                        Shaders are available because OpenGL 2.1 is supported.
                                        VBOs are available because OpenGL 1.5 is supported.
                                        
                                        Using VBOs: No
                                        Is Modded: Definitely; Client brand changed to 'fml,forge'
                                        Type: Client (map_client.txt)
                                        Resource Packs: []
                                        Current Language: Français (France)
                                        Profiler Position: N/A (disabled)
                                        [17:09:06] [Client thread/INFO] [STDOUT]: [net.minecraft.init.Bootstrap:printToSYSOUT:660]: #@!@# Game crashed! Crash report saved to: #@!@# C:\Users\Admin\Desktop\CSC\eclipse\.\crash-reports\crash-2016-10-23_17.09.06-client.txt
                                        AL lib: (EE) alc_cleanup: 1 device not closed
                                        Java HotSpot(TM) Client VM warning: Using incremental CMS is deprecated and will likely be removed in a future release
                                        
                                        

                                        Register packet:

                                                network.registerMessage(PacketBalai.Handler.class, PacketBalai.class, 2, Side.SERVER);
                                        
                                        

                                        packet:

                                        
                                        package com.CSC.net.packet;
                                        
                                        import com.CSC.net.block.CSCBlocks;
                                        
                                        import io.netty.buffer.ByteBuf;
                                        import net.minecraft.block.state.IBlockState;
                                        import net.minecraft.client.Minecraft;
                                        import net.minecraft.entity.player.EntityPlayer;
                                        import net.minecraft.init.Blocks;
                                        import net.minecraft.item.EnumAction;
                                        import net.minecraft.util.BlockPos;
                                        import net.minecraft.util.ChatComponentText;
                                        import net.minecraft.util.EnumChatFormatting;
                                        import net.minecraft.util.MovingObjectPosition;
                                        import net.minecraftforge.fml.common.network.simpleimpl.IMessage;
                                        import net.minecraftforge.fml.common.network.simpleimpl.IMessageHandler;
                                        import net.minecraftforge.fml.common.network.simpleimpl.MessageContext;
                                        import net.minecraftforge.fml.relauncher.Side;
                                        import net.minecraftforge.fml.relauncher.SideOnly;
                                        
                                        public class PacketBalai implements IMessage{
                                        
                                        public PacketBalai()
                                        {
                                        
                                        }
                                        
                                        @Override
                                        public void fromBytes(ByteBuf buf) 
                                        {
                                        
                                        }
                                        
                                        @Override
                                        public void toBytes(ByteBuf buf) 
                                        {
                                        
                                        }
                                        
                                        public static class Handler implements IMessageHandler <packetbalai, imessage="">{
                                        @SideOnly(Side.SERVER)
                                        @Override
                                           public IMessage onMessage(PacketBalai message, MessageContext ctx) 
                                           {
                                        System.out.println("");
                                        EntityPlayer playerIn = Minecraft.getMinecraft().thePlayer;
                                        
                                        MovingObjectPosition ray = playerIn.rayTrace(4, 0);
                                        BlockPos pos = ray.getBlockPos();
                                        IBlockState state = playerIn.worldObj.getBlockState(pos);
                                        System.out.println(pos);
                                        if(state.getBlock() == CSCBlocks.block_sale && playerIn.worldObj.getBlockState(new BlockPos(pos.getX(), pos.getY() + 1, pos.getZ())).getBlock() != Blocks.anvil) {
                                        if(playerIn.getItemInUse().getItemUseAction() == EnumAction.BOW)
                                        playerIn.worldObj.setBlockState(new BlockPos(pos.getX(), pos.getY(), pos.getZ()), CSCBlocks.block_propre.getDefaultState());
                                        }
                                        else if(playerIn.worldObj.getBlockState(new BlockPos(pos.getX(), pos.getY() + 1, pos.getZ())).getBlock() == Blocks.anvil)
                                        {
                                        playerIn.addChatMessage(new ChatComponentText("Vous ne pouvez pas néttoyez ce bloc car il y a une poubelle dessus, enlevez d'abord la poubelle avant de néttoyer ce bloc !"));
                                        }
                                        else
                                        {
                                        playerIn.addChatMessage(new ChatComponentText(EnumChatFormatting.RED + "Action impossible."));
                                        }
                                        return null;
                                        
                                           }
                                        }
                                        
                                        }
                                        
                                        

                                        classe item:

                                        
                                        package com.CSC.net.item;
                                        
                                        import com.CSC.net.Main;
                                        import com.CSC.net.block.CSCBlocks;
                                        import com.CSC.net.packet.PacketBalai;
                                        
                                        import net.minecraft.block.state.IBlockState;
                                        import net.minecraft.entity.player.EntityPlayer;
                                        import net.minecraft.entity.player.EntityPlayerMP;
                                        import net.minecraft.init.Blocks;
                                        import net.minecraft.item.EnumAction;
                                        import net.minecraft.item.Item;
                                        import net.minecraft.item.ItemStack;
                                        import net.minecraft.util.BlockPos;
                                        import net.minecraft.util.ChatComponentText;
                                        import net.minecraft.util.EnumChatFormatting;
                                        import net.minecraft.util.EnumFacing;
                                        import net.minecraft.util.MovingObjectPosition;
                                        import net.minecraft.util.Vec3;
                                        import net.minecraft.world.World;
                                        import net.minecraftforge.event.entity.player.PlayerInteractEvent.Action;
                                        import net.minecraftforge.fml.relauncher.Side;
                                        import net.minecraftforge.fml.relauncher.SideOnly;
                                        
                                        public class balai extends Item {
                                        
                                        private BlockPos pos2;
                                        
                                            public int getMaxItemUseDuration(ItemStack stack)
                                            {
                                                return 32; // durée
                                            }
                                        
                                            public EnumAction getItemUseAction(ItemStack stack)
                                            {
                                                return EnumAction.BOW; // type d'animation
                                            }
                                            
                                            public boolean onItemUse(ItemStack stack, EntityPlayer playerIn, World worldIn, BlockPos pos, EnumFacing side, float hitX, float hitY, float hitZ)
                                            {
                                            pos2 = pos;
                                                return false;
                                            }
                                        
                                            public ItemStack onItemRightClick(ItemStack itemStackIn, World worldIn, EntityPlayer playerIn)
                                            {
                                                playerIn.setItemInUse(itemStackIn, this.getMaxItemUseDuration(itemStackIn)); // met l'item en utilisation
                                                return itemStackIn;
                                            }
                                        
                                            public ItemStack onItemUseFinish(ItemStack stack, World worldIn, EntityPlayer playerIn)
                                            {
                                            if(worldIn.isRemote) {
                                        if(stack != null && stack.getItem() == CSCItems.balai) {
                                        EntityPlayerMP p = (EntityPlayerMP)playerIn;
                                        Main.network.sendToServer(new PacketBalai());
                                        }
                                            }
                                        
                                                return stack;
                                            }
                                            
                                        }
                                        
                                        ```</packetbalai,>
                                        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

                                          Cette ligne n’a rien à faire là :
                                          EntityPlayerMP p = (EntityPlayerMP)playerIn;

                                          Et tu n’as toujours pas comprit.

                                          Tu dois faire le player.rayTrace(4, 0) avant d’envoyer le paquet et tu dois envoyer dans le paquet le résultat du raytrace.
                                          Faire le rayTrace à l’arrivé du paquet ne sert à rien car ça fonctionne que en client.

                                          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