(MCPC+) Serveur qui crash au lancement
-
C’est possible que tu ais oublié de recompiler avec reobfuscate_srg.bat
Sinon, une classe placée dans la partie client et hop, c’est la misère

Vérifie bien

-
robin :
Le mod fonctionne effectivement sur Eclipse et sur le mod solo

Gugu42 :
Sa fais longtemps que je me pose cette question :
A quoi sert reobfuscate_srg ?Au niveau des class mal placées, j’ai juste ma classe principal qui est dans mon package common, mais c’est tout

-
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