MFF

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

    Crash report rendu TESR

    Planifier Épinglé Verrouillé Déplacé Résolu 1.7.x
    1.7.10
    9 Messages 5 Publieurs 1.6k 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.
    • Antoine_A Hors-ligne
      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
      • DiabolicaTrixD Hors-ligne
        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
        • DeletedD Hors-ligne
          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
          • DiabolicaTrixD Hors-ligne
            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
            • robin4002R Hors-ligne
              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
              • DeletedD Hors-ligne
                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_A Hors-ligne
                  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
                  • robin4002R Hors-ligne
                    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
                    • FolganskyF Hors-ligne
                      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
                      ContactMentions Légales

                      MINECRAFT FORGE FRANCE © 2024

                      Powered by NodeBB