(MCPC+) Serveur qui crash au lancement
-
Vérifie que le serveur ce lance sur eclipse

Si tu as un NoClassDefFound net/minecraft/client/quelquechose c’est que tu as oublié un SideOnlyLe reobfuscate_srg permet de compiler en utilisant le nom srg, celui évite à forge de deobf ton mod au lancement, il sera donc changé plus vite et aura une meilleur compatibilité entre les différente maj de minecraft.
-
Je lance le serveur et j’ai en effet une NoClassDefFoundError
Le lien est : net/minecraft/client/renderer/tileentity/TileEntitySpecialRenderer
On peut savoir ou j’ai oublie le SideOnly ?___
Sachant que j’ai un block qui utilise les TileEntity -
Soit en haut de ta classe extends TileEntitySpecialRenderer, soit il faut déplacer les ClientRegistry.bindTileEntitySpecialRenderer dans le client proxy
-
J’ai pris mon code de ma class principale :
ModLoader .registerTileEntity(TileEntityBlockJumpEntity.class, "TileEntitytrampoline", new TileEntityBlockJumpEntityRenderer());je l’ai placé dans clientproxy et ça marche !
Juste un problème : Ducoup je rebondis sur ce bloc juste en solo

-
En même temps si tu utilise du modloader …
Dans ta classe principale, la où tu avais ce code modloader mets :GameRegistry.registerTileEntity(TileEntityBlockJumpEntity.class, "TileEntitytrampoline");Et dans ton clientProxy, à la place de la où tu as ton code modloader actuel :
ClientRegistry.bindTileEntitySpecialRenderer(TileEntityBlockJumpEntity.class, new TileEntityBlockJumpEntityRenderer()); -
Marche pas ._.
-
Je peux avoir tes codes de : la classe principale, le clientProxy, le commonProxy, TileEntityBlockJumpEntity, TileEntityBlockJumpEntityRenderer, et ton bloc tranmpoline ?
(paste bin pour éviter le spam) -
Class principal :
Le reste je peux te le mettre sous spoiler sans que ça spam

ClientProxy :
package civilcraft.civilcraft.client; import net.minecraft.src.ModLoader; import net.minecraftforge.client.MinecraftForgeClient; import civilcraft.civilcraft.common.CommonProxy; import civilcraft.civilcraft.entity.TileEntityBlockJumpEntity; import civilcraft.civilcraft.entity.TileEntityBlockJumpEntityRenderer; import civilcraft.civilcraft.tick.ClientTickHandler; import cpw.mods.fml.client.registry.ClientRegistry; import cpw.mods.fml.client.registry.RenderingRegistry; import cpw.mods.fml.common.registry.TickRegistry; import cpw.mods.fml.relauncher.Side; public class ClientProxy extends CommonProxy { public static int renderBlockChaiseID; public static int renderBlockEtagereID; public static String BlockTexture = "/CivilCraft/Block/"; public static String ItemTexture = "/CivilCraft/Item/"; /** * C'est ici que l'on va enregistrer tout ce qui concerne UNIQUEMENT le * Client comme les RenderBlocks,… et dans notre exemple, l'enregistrement * d'un fichier de texture. */ @Override public void registerRenderThings() { ClientRegistry.bindTileEntitySpecialRenderer(TileEntityBlockJumpEntity.class, new TileEntityBlockJumpEntityRenderer()); TickRegistry.registerTickHandler(new ClientTickHandler(), Side.CLIENT); } @Override public void registerTextures() { MinecraftForgeClient.preloadTexture(this.BlockTexture); MinecraftForgeClient.preloadTexture(this.ItemTexture); } }CommonProxy :
package civilcraft.civilcraft.common; import net.minecraft.src.ModLoader; import civilcraft.civilcraft.entity.TileEntityBlockJumpEntity; import civilcraft.civilcraft.entity.TileEntityBlockJumpEntityRenderer; public class CommonProxy { /** * ici nous enregistrerons tout ce qui concerne la partie "serveur" et * commun avec le client (un peu comme le Load() mais ici il n'y aura pas * grand chose) */ public void registerRenderThings() { } public void registerTextures() { } }TileEntityBlockJumpEntity :
package civilcraft.civilcraft.entity; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; import net.minecraft.tileentity.TileEntity; public class TileEntityBlockJumpEntity extends TileEntity { }TileEntityBlockJumpEntityRenderer :
package civilcraft.civilcraft.entity; import net.minecraft.client.renderer.tileentity.TileEntitySpecialRenderer; import net.minecraft.tileentity.TileEntity; import org.lwjgl.opengl.GL11; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; public class TileEntityBlockJumpEntityRenderer extends TileEntitySpecialRenderer { private ModelBlockJumpEntityRenderer model = new ModelBlockJumpEntityRenderer(); public void renderTileEntityAt(TileEntity tileEntity, double x, double y, double z, float par8) { GL11.glPushMatrix(); GL11.glTranslatef((float) x + .5F, (float) y + .5F, (float) z + .5F); this.bindTextureByName("/civilcraft/Block/jump.png"); GL11.glPopMatrix(); } }Jump bloc :
package civilcraft.civilcraft.block; import java.util.Random; import cpw.mods.fml.client.ITextureFX; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; import civilcraft.civilcraft.client.ClientProxy; import civilcraft.civilcraft.entity.TileEntityBlockJumpEntity; import net.minecraft.block.Block; import net.minecraft.block.BlockContainer; import net.minecraft.block.material.Material; import net.minecraft.client.renderer.texture.IconRegister; import net.minecraft.client.texturepacks.ITexturePack; import net.minecraft.entity.Entity; import net.minecraft.tileentity.TileEntity; import net.minecraft.util.Icon; import net.minecraft.world.World; public class BlockJumpEntity extends BlockContainer { public BlockJumpEntity(int id) { super(id, Material.cake); } public boolean isOpaqueCube() { return false; } public int getRenderBlockPass() { return 1; } private Entity tentity; private float tfall; @SideOnly(Side.CLIENT) private Icon field_94393_a; @SideOnly(Side.CLIENT) private Icon field_94392_b; public void onFallenUpon(World world, int x, int y, int z, Entity entity, float par6) { if (tentity == null) { tentity = entity; tfall = entity.fallDistance; } else world.scheduleBlockUpdate(x, y, z, blockID, 1); entity.fallDistance = 0; } public void updateTick(World world, int x, int y, int z, Random random) { if (tentity != null) { float step = 0; if (tentity.isSneaking()) step = tfall / 6; if (step > 1) step = tfall / 10; if (step > 3) step = tfall / 15; if (step > 6) step = tfall / 20; tentity.motionY = .5F + step; tentity = null; } } @Override public TileEntity createNewTileEntity(World var1) { return new TileEntityBlockJumpEntity(); } @SideOnly(Side.CLIENT) /** * From the specified side and block metadata retrieves the blocks texture. Args: side, metadata */ public Icon getIcon(int par1, int par2) { return par1 == 0 ? this.field_94392_b : (par1 == 1 ? this.field_94393_a : this.blockIcon); } @SideOnly(Side.CLIENT) /** * When this method is called, your block should register all the icons it needs with the given IconRegister. This * is the only chance you get to register icons. */ public void registerIcons(IconRegister par1IconRegister) { this.blockIcon = par1IconRegister.registerIcon("jump_cote"); this.field_94393_a = par1IconRegister.registerIcon("jump_haut"); this.field_94392_b = par1IconRegister.registerIcon("piston_bottom"); } }Dis moi ce que tu cherches sur ma class principale car elle fais plus de mille pages !
Je relance car sous MCPC+, le mod ne marche pas
Toujours le même crash-report
-
Étrange que le trampoline ne marche pas en smp. Même chose, si ça fonctionne en serveur sur eclipse ça devrait fonctionner sous mcpc plus …
Au pire tu peux me faire un zip des sources (si ça te dérange pas) ? -
Oui mais je te l’envoie en MP

-
Bon le problème est que … tu ne sais pas compiler un mod !
J’ai rien toucher au code, j’ai juste compiler le mod et c’est bon (par contre il y a pas les textures)
Du coup, refais un tour ici : https://www.minecraftforgefrance.fr/topic/55/compiler-votre-mod -
Ok, j’ai fais ce que le tuto m’a indiqué et ça marche !!!
Merci :D___
… sauf pour le trampo
-
Le trampo il faudrait que tu revois le code, essaye de réduire la collision et d’utiliser onEntityIntract (ou un truc comme ça)
Regarde le code de la soul sand. -
Ok

Mais je le ferais plus tard, pour je te préviens quand je commence
-
Bon, je voulais commencer mais apparemment mon serveur ne marche plus (même s’il marche du côté eclipse), je t’envoie encore les sources ?
-
Même erreur ?
Tu compile comment ton mod o_O ? -
Mais j’en sais rien, je le compile normalement x)
-
Enfaîte j’ai certain problèmes, il me reobf des fichiers que je n’ai pas toucher, je t’envoie les sources
-
J’ai aucun problème de mon côté, le mod se lance correctement sur mcpc plus.
Je pense que ta workspace est endommagé, retélécharge les sources de forge, et une fois l’installation fini, copie le dossier civilcraft (<ancien forge>/mcp/src/minecraft/) dans dans <nouveau forge>/mcp/src/minecraft/
D’ailleurs quand tu m’envoie les sources, le dossier civilcraft me suffit, le reste sert à rien. -
Ok :)___
P***** de m***** ça ne marche toujours pas ><___
Tu pourrais m’envoyé le mod serveur en mp ducoup ?