Résolu [CRASH] Custom Mob en Server

BlueZikS_

Aventurier
4 Janvier 2019
20
0
4
20
La ligne 32 correspond à quelle ligne de ta classe main ?

cette ligne : proxy.registerRender();

Mais la je viens de modifier le code

Code:
package fr.blueziks_.cosmicmod;
import fr.blueziks_.cosmicmod.proxy.CommonProxy;
import fr.blueziks_.cosmicmod.tabs.CosmicTab;
import fr.blueziks_.cosmicmod.util.Reference;
import fr.blueziks_.cosmicmod.util.handlers.RegistryHandler;
import net.minecraft.creativetab.CreativeTabs;
import net.minecraftforge.fml.common.Mod;
import net.minecraftforge.fml.common.Mod.EventHandler;
import net.minecraftforge.fml.common.Mod.Instance;
import net.minecraftforge.fml.common.SidedProxy;
import net.minecraftforge.fml.common.event.FMLInitializationEvent;
import net.minecraftforge.fml.common.event.FMLPostInitializationEvent;
import net.minecraftforge.fml.common.event.FMLPreInitializationEvent;
import net.minecraftforge.fml.relauncher.Side;
import net.minecraftforge.fml.relauncher.SideOnly;
@Mod(modid = Reference.MOD_ID, name = Reference.NAME, version = Reference.VERSION)
public class Main 
{
    public static final CreativeTabs cosmictab = new CosmicTab("cosmictab");
    @Instance
    public static Main instance;
   
    @SidedProxy(clientSide = Reference.CLIENT_PROXY_CLASS, serverSide = Reference.COMMON_PROXY_CLASS)
    public static CommonProxy proxy;
   
    @EventHandler
    public static void preInit(FMLPreInitializationEvent event)
    {
        RegistryHandler.preInitRegistries(event);
        proxy.registerRender();
    }
   
    @EventHandler
    public static void init(FMLInitializationEvent event)
    {
        RegistryHandler.initRegistries(event);
    }
   
    @EventHandler
    public static void postInit(FMLPostInitializationEvent event)
    {
        RegistryHandler.postInitRegistries(event);
    }
}

Et cette fois je n'ai pas de crash sur eclipse le jeu se lance , je vais tester immédiatement en multijoueur
 

BlueZikS_

Aventurier
4 Janvier 2019
20
0
4
20
La ligne 32 correspond à quelle ligne de ta classe main ?
Malgré mes modifications, le mod marche très bien en solo mais toujours la même erreur quand je démarre le serveur


Code:
 [11:16:50] [Server thread/ERROR] [net.minecraft.server.MinecraftServer]: Encountered an unexpected exception
net.minecraftforge.fml.common.LoaderExceptionModCrash: Caught exception from Cosmic Mod (cm)
Caused by: java.lang.NoClassDefFoundError: net.minecraft.client.renderer.entity.Render
at fr.blueziks_.cosmicmod.util.handlers.RenderHandler.registerEntityRenders(RenderHandler.java:17) ~[RenderHandler.class:?]
at fr.blueziks_.cosmicmod.util.handlers.RegistryHandler.preInitRegistries(RegistryHandler.java:67) ~[RegistryHandler.class:?]
at fr.blueziks_.cosmicmod.Main.preInit(Main.java:32) ~[Main.class:?]
 

BlueZikS_

Aventurier
4 Janvier 2019
20
0
4
20
Malgré mes modifications, le mod marche très bien en solo mais toujours la même erreur quand je démarre le serveur


Code:
 [11:16:50] [Server thread/ERROR] [net.minecraft.server.MinecraftServer]: Encountered an unexpected exception
net.minecraftforge.fml.common.LoaderExceptionModCrash: Caught exception from Cosmic Mod (cm)
Caused by: java.lang.NoClassDefFoundError: net.minecraft.client.renderer.entity.Render
at fr.blueziks_.cosmicmod.util.handlers.RenderHandler.registerEntityRenders(RenderHandler.java:17) ~[RenderHandler.class:?]
at fr.blueziks_.cosmicmod.util.handlers.RegistryHandler.preInitRegistries(RegistryHandler.java:67) ~[RegistryHandler.class:?]
at fr.blueziks_.cosmicmod.Main.preInit(Main.java:32) ~[Main.class:?]

Ligne 32 de mon Main : RegistryHandler.preInitRegistries(event);
Ligne 17 du RenderHandler : RenderingRegistry.registerEntityRenderingHandler(EntityCosmic.class, new IRenderFactory<EntityCosmic>()
Ligne 67 du RegistryHandler : RenderHandler.registerEntityRenders();
 

BlueZikS_

Aventurier
4 Janvier 2019
20
0
4
20
Ta fonction preInitRegistries doit être déplacé dans le client proxy, elle ne doit plus être dans le main.

Je dois déplacer tout le bloc dans Client Proxy?:
Code:
    @EventHandler
    public static void preInit(FMLPreInitializationEvent event)
    {
        RegistryHandler.preInitRegistries(event);
        proxy.registerRender();
    }
 

BlueZikS_

Aventurier
4 Janvier 2019
20
0
4
20
Non, uniquement l'appel à la fonction RegistryHandler.preInitRegistries
Okay je vois, mais comment l'ajouter sans erreur?
Mon ClientProxy :
Code:
package fr.blueziks_.cosmicmod.proxy;
import fr.blueziks_.cosmicmod.util.Reference;
import fr.blueziks_.cosmicmod.util.handlers.RegistryHandler;
import fr.blueziks_.cosmicmod.util.handlers.RenderHandler;
import net.minecraft.client.renderer.block.model.ModelResourceLocation;
import net.minecraft.item.Item;
import net.minecraft.util.ResourceLocation;
import net.minecraftforge.client.model.ModelLoader;
public class ClientProxy extends CommonProxy
{
    @Override
    public void registerRender() {
         RenderHandler.registerEntityRenders();
    } 
   
    public void registerItemRenderer(Item item, int meta, String id) 
    {
        ModelLoader.setCustomModelResourceLocation(item, meta, new ModelResourceLocation(item.getRegistryName(), id));
    }
   
    @Override
    public void registerVariantRenderer(Item item, int meta, String filename, String id) 
    {
        ModelLoader.setCustomModelResourceLocation(item, meta, new ModelResourceLocation(new ResourceLocation(Reference.MOD_ID, filename), id));
    }
   
    @Override
    public void registerModel(Item item, int metadata) 
    {
        ModelLoader.setCustomModelResourceLocation(item, metadata, new ModelResourceLocation(item.getRegistryName(), "inventory"));
    }
}
 

robin4002

Expert en informatique et systèmes d'information
Staff
Responsable technique
Responsable forum
12 Novembre 2012
20 815
156
3 000
347
26
Alsace
www.minecraftforgefrance.fr
Si tu as vraiment besoin de FMLPreInitializationEventdans la fonction registerEntityRenders, il faut le passer en argument de ta fonction registerRender
 

BlueZikS_

Aventurier
4 Janvier 2019
20
0
4
20
Si tu as vraiment besoin de FMLPreInitializationEventdans la fonction registerEntityRenders, il faut le passer en argument de ta fonction registerRender
Quand je retires le :
RegistryHandler.preInitRegistries(event); de ma classe Main, mon jeu me retires : le biome et l'entité, je sais pas vraiment quoi faire la je bloque
 

BlueZikS_

Aventurier
4 Janvier 2019
20
0
4
20
Je comprends pas pourquoi ça veux pas marcher en multi, quand le biome etc sont chargés sur le multi, boom crash (je vois un message dans la console comme quoi le biome est mis)