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

    Résolu Crash report rendu TESR

    1.7.x
    1.7.10
    5
    9
    1375
    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.
    • Antoine_
      Antoine_ dernière édition par

      J’ai créer des Modeles 3D pour mon serveur tout fonctionne en solo mais ne multijoueur j’ai un beau crash report

      Description: Exception in server tick loop
      
      java.lang.NoClassDefFoundError: net/minecraft/client/gui/GuiScreen
      at blocks.blocksdeco.Blocktombe.func_149645_b(Blocktombe.java:46)
      at net.minecraft.entity.Entity.func_70091_d(Entity.java:936)
      at net.minecraft.network.NetHandlerPlayServer.func_147347_a(NetHandlerPlayServer.java:520)
      at net.minecraft.network.play.client.C03PacketPlayer.func_148833_a(C03PacketPlayer.java:36)
      at net.minecraft.network.play.client.C03PacketPlayer$C06PacketPlayerPosLook.func_148833_a(C03PacketPlayer.java:234)
      at net.minecraft.network.NetworkManager.func_74428_b(NetworkManager.java:244)
      at net.minecraft.network.NetworkSystem.func_151269_c(NetworkSystem.java:173)
      at net.minecraft.server.MinecraftServer.func_71190_q(MinecraftServer.java:991)
      at net.minecraft.server.dedicated.DedicatedServer.func_71190_q(DedicatedServer.java:431)
      at net.minecraft.server.MinecraftServer.func_71217_p(MinecraftServer.java:809)
      at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:669)
      at java.lang.Thread.run(Thread.java:745)
      Caused by: java.lang.ClassNotFoundException: net.minecraft.client.gui.GuiScreen
      at net.minecraft.launchwrapper.LaunchClassLoader.findClass(LaunchClassLoader.java:101)
      at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
      at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
      … 12 more
      

      La classe de mon Block

      package blocks.blocksdeco;
      
      import blocks.culture.TileEntityBlockavoine;
      import cpw.mods.fml.relauncher.Side;
      import cpw.mods.fml.relauncher.SideOnly;
      import mods.client.Clientproxy;
      import net.minecraft.block.Block;
      import net.minecraft.block.material.Material;
      import net.minecraft.entity.EntityLivingBase;
      import net.minecraft.item.ItemStack;
      import net.minecraft.tileentity.TileEntity;
      import net.minecraft.util.MathHelper;
      import net.minecraft.world.IBlockAccess;
      import net.minecraft.world.World;
      
      public class Blocktombe extends Block
      {
      public Blocktombe(Material material)
      {
      super(material.wood);
      }
      
      @Override
      public boolean hasTileEntity(int metadata)
      {
      return true;
      }
      
      @Override
      public TileEntity createTileEntity(World world, int metadata)
      {
      return new TileEntityBlocktombe();
      }
      public boolean isOpaqueCube()
         {
             return false;
         }
      
         public boolean renderAsNormalBlock()
         {
             return false;
         }
      
         public int getRenderType()
         {
             return Clientproxy.tesrRenderId;
         }
      
         @SideOnly(Side.CLIENT)
         public void setBlockBoundsBasedOnState(IBlockAccess world, int x, int y, int z)
         {
          this.setBlockBounds(0.0F, 0.0F, 0.0F, 1.0F, 1.0F, 1.0F);
         }
      
         //Rotation
      
         public void onBlockPlacedBy(World world, int x, int y, int z, EntityLivingBase living, ItemStack stack)
         {
             if(stack.getItemDamage() == 0)
             {
                 TileEntity tile = world.getTileEntity(x, y, z);
                 if(tile instanceof TileEntityBlocktombe)
                 {
                     int direction = MathHelper.floor_double((double)(living.rotationYaw * 4.0F / 360.0F) + 2.5D) & 3;
                     ((TileEntityBlocktombe)tile).setDirection((byte)direction);
                 }
             }
         }
      
      }
      
      

      mon TileEntity

      package blocks.blocksdeco;
      
      import net.minecraft.nbt.NBTTagCompound;
      import net.minecraft.network.NetworkManager;
      import net.minecraft.network.Packet;
      import net.minecraft.network.play.server.S35PacketUpdateTileEntity;
      import net.minecraft.tileentity.TileEntity;
      
      public class TileEntityBlocktombe extends TileEntity
      {
      private byte direction;
      
         @Override
         public void readFromNBT(NBTTagCompound compound)
         {
             super.readFromNBT(compound);
             this.direction = compound.getByte("Direction");
         }
      
         @Override
         public void writeToNBT(NBTTagCompound compound)
         {
             super.writeToNBT(compound);
             compound.setByte("Direction", this.direction);
         }
      
         public byte getDirection()
         {
             return direction;
         }
      
         public void setDirection(byte direction)
         {
             this.direction = direction;
             this.worldObj.markBlockForUpdate(this.xCoord, this.yCoord, this.zCoord);
         }
      
         public Packet getDescriptionPacket()
         {
             NBTTagCompound nbttagcompound = new NBTTagCompound();
             this.writeToNBT(nbttagcompound);
             return new S35PacketUpdateTileEntity(this.xCoord, this.yCoord, this.zCoord, 0, nbttagcompound);
         }
      
         public void onDataPacket(NetworkManager net, S35PacketUpdateTileEntity pkt)
         {
             this.readFromNBT(pkt.func_148857_g());
             this.worldObj.markBlockRangeForRenderUpdate(this.xCoord, this.yCoord, this.zCoord, this.xCoord, this.yCoord, this.zCoord);
         }
      }
      
      

      Mon tile Entity renderer

      
      package blocks.blocksdeco;
      
      import net.minecraft.client.renderer.tileentity.TileEntityRendererDispatcher;
      import net.minecraft.client.renderer.tileentity.TileEntitySpecialRenderer;
      import net.minecraft.tileentity.TileEntity;
      import net.minecraft.util.ResourceLocation;
      
      import org.lwjgl.opengl.GL11;
      
      import blocks.modele.Tombe;
      
      public class TileEntityBlocktombeSpecialRenderer extends TileEntitySpecialRenderer
      {
      public static Tombe model = new Tombe();
      public static ResourceLocation texture = new ResourceLocation("TutoMod:textures/blocks/tombe.png");
      
      @Override
      public void renderTileEntityAt(TileEntity tile, double x, double y, double z, float partialRenderTick)
      {
      this.renderTileEntityBlocktombeAt((TileEntityBlocktombe)tile, x, y, z, partialRenderTick);
      }
      
      public void renderTileEntityBlocktombeAt(TileEntityBlocktombe tile, double x, double y, double z, float partialRenderTick)
      {
      if(tile.getDirection() == 0)
      {
      GL11.glPushMatrix();
      GL11.glTranslated(x + 0.5D, y + 1.8D, z + 0.5D);
      GL11.glRotated(180, 0.0F, 0.0F, 1.0F);
      GL11.glRotatef(90F * 2, 0.0F, 1.0F, 0.0F);
      GL11.glScalef(1.2F, 1.2F, 1.2F);
      this.bindTexture(texture);
      model.renderAll();
      GL11.glPopMatrix();
      }
      if(tile.getDirection() == 1)
      {
      GL11.glPushMatrix();
      GL11.glTranslated(x + 0.5D, y + 1.8D, z + 0.5D);
      GL11.glRotated(180, 0.0F, 0.0F, 1.0F);
      GL11.glRotatef(90F * 1, 0.0F, 1.0F, 0.0F);
      GL11.glScalef(1.2F, 1.2F, 1.2F);
      this.bindTexture(texture);
      model.renderAll();
      GL11.glPopMatrix();
      }
      if(tile.getDirection() == 2)
      {
      GL11.glPushMatrix();
      GL11.glTranslated(x + 0.5D, y + 1.8D, z + 0.5D);
      GL11.glRotated(180, 0.0F, 0.0F, 1.0F);
      GL11.glRotatef(90F * 2, 0.0F, 1.0F, 0.0F);
      GL11.glScalef(1.2F, 1.2F, 1.2F);
      this.bindTexture(texture);
      model.renderAll();
      GL11.glPopMatrix();
      }
      if(tile.getDirection() == 3)
      {
      GL11.glPushMatrix();
      GL11.glTranslated(x + 0.5D, y + 1.8D, z + 0.5D);
      GL11.glRotated(180, 0.0F, 0.0F, 1.0F);
      GL11.glRotatef(90F * 1, 0.0F, 1.0F, 0.0F);
      GL11.glScalef(1.2F, 1.2F, 1.2F);
      this.bindTexture(texture);
      model.renderAll();
      GL11.glPopMatrix();
      }
      }
      //Rendu 3D d'un block TECHNE
      
      public TileEntityBlocktombeSpecialRenderer()
         {
             this.func_147497_a(TileEntityRendererDispatcher.instance);
         }
      }
      
      

      Voila je ne comprend pas d’ou vient le crash il ne ce produit que quand je touche le bloc en multijoueur si personne ne passe dessus tout fonctionne.

      Merci de votre aide.

      1 réponse Dernière réponse Répondre Citer 0
      • DiabolicaTrix
        DiabolicaTrix Correcteurs Moddeurs confirmés dernière édition par

        Je ne le vois pas, mais selon le crash report tu fais appel à GuiScreen sur le serveur mais cette classe n’existe pas côté serveur.

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

          Mieux comme ceci 😃

          
          @SideOnly(SIDE.CLIENT)
          public int getRenderType()
             {
                 return Clientproxy.tesrRenderId;
             }
          
          

          N’oublier pas d’ importer l’annotation SideOnly.

          La méthode getRenderType() n’est à appeler que sur le côté Client, donc fais bien attention la prochaine fois 🙂

          1 réponse Dernière réponse Répondre Citer 1
          • DiabolicaTrix
            DiabolicaTrix Correcteurs Moddeurs confirmés dernière édition par

            Effectivement je cherchais, mais tu as trouvé avant moi 😛

            1 réponse Dernière réponse Répondre Citer 0
            • robin4002
              robin4002 Moddeurs confirmés Rédacteurs Administrateurs dernière édition par

              Il a sûrement mit un truc en rapport avec GuiScreen dans le constructeur de son ClientProxy. Le serveur essaye de charger la classe ClientProxy et donc il crash.
              Julot10085 a donné la bonne solution.

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

                robin, pas mal de personnes font cette erreur, y compris moi au début. En fait sur ton tuto, tu as oublié de mettre l’annotation. Si tu pouvais l’éditer quand t’auras le temps 😃

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

                  Ah oui exact pfff je suis vraiment désolé erreur de …… j’avais pas fait attention que le new getRenderType() que j’avais codé ce lancé aussi coté serveur Merci beaucoup ça parait tellement logique quand on voie son erreur …

                  1 réponse Dernière réponse Répondre Citer 0
                  • robin4002
                    robin4002 Moddeurs confirmés Rédacteurs Administrateurs dernière édition par

                    Je vois ça, je viens de l’ajouter.

                    1 réponse Dernière réponse Répondre Citer 0
                    • Folgansky
                      Folgansky Correcteurs dernière édition par

                      C’est vrai que j’avais eu la même mauvaise surprise qui avait été résolu tout aussi simplement.

                      Une bonne chose de faite.

                      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