[1.7.10] Crash serveur
#1
Bonjour,

Mon mod crash lorsque je le debug sur serveur, je ne parviens pas à fixer l'erreur affichée, du coup : besoin d'aide.

Ce bout de code consiste à appliquer une texture à un joueur (un skin donc) et j'aimerais qu'il fonctionne sous serveur.


Spoiler: Classe

Code :
public class SkinChanger {
      
        private ModelBiped demon = new ModelBiped();
        Minecraft mc= Minecraft.getMinecraft();
        ModelBiped main;
        
       @SubscribeEvent(priority=EventPriority.NORMAL)
        public void PlayerPrerenderer(RenderPlayerEvent.SetArmorModel event) {
          main = event.renderer.modelBipedMain;
        
         if (fr.mymod.overlay.HUDRender.HUDSpeed == "on") {
          renderSkinPlayer(event.entityPlayer, event.partialRenderTick);
         }
        }
      
        public void renderSkinPlayer(EntityPlayer player, float partialTick) {
         float base = 0.0625f;
        
            GL11.glPushMatrix();
            mc.renderEngine.bindTexture(new ResourceLocation(MyMod.MODID, "textures/skin.png"));
            demon.bipedHead.render(base);
            demon.bipedBody.render(base);
            demon.bipedRightArm.render(base);
            demon.bipedLeftArm.render(base);
            demon.bipedLeftLeg.render(base);
            demon.bipedRightLeg.render(base);
          
            demon.bipedHead.rotateAngleX = main.bipedHead.rotateAngleX;
            demon.bipedHead.rotateAngleY = main.bipedHead.rotateAngleY;
            demon.bipedHead.rotateAngleZ = main.bipedHead.rotateAngleZ;
            demon.bipedBody.rotateAngleX = main.bipedBody.rotateAngleX;
            demon.bipedBody.rotateAngleY = main.bipedBody.rotateAngleY;
            demon.bipedBody.rotateAngleZ = main.bipedBody.rotateAngleZ;
            demon.bipedLeftArm.rotateAngleX = main.bipedLeftArm.rotateAngleX;
            demon.bipedLeftArm.rotateAngleY = main.bipedLeftArm.rotateAngleY;
            demon.bipedLeftArm.rotateAngleZ = main.bipedLeftArm.rotateAngleZ;
            demon.bipedRightArm.rotateAngleX = main.bipedRightArm.rotateAngleX;
            demon.bipedRightArm.rotateAngleY = main.bipedRightArm.rotateAngleY;
            demon.bipedRightArm.rotateAngleZ = main.bipedRightArm.rotateAngleZ;
            demon.bipedLeftLeg.rotateAngleX = main.bipedLeftLeg.rotateAngleX;
            demon.bipedLeftLeg.rotateAngleY = main.bipedLeftLeg.rotateAngleY;
            demon.bipedLeftLeg.rotateAngleZ = main.bipedLeftLeg.rotateAngleZ;
            demon.bipedRightLeg.rotateAngleX = main.bipedRightLeg.rotateAngleX;
            demon.bipedRightLeg.rotateAngleY = main.bipedRightLeg.rotateAngleY;
            demon.bipedRightLeg.rotateAngleZ = main.bipedRightLeg.rotateAngleZ;
          
            GL11.glPopMatrix();
        }
}




Spoiler: Erreur

Code :
---- Minecraft Crash Report ----
// On the bright side, I bought you a teddy bear!

Time: 27/04/18 10:37
Description: Exception in server tick loop

cpw.mods.fml.common.LoaderException: java.lang.NoClassDefFoundError: net/minecraft/client/model/ModelBiped
    at cpw.mods.fml.common.LoadController.transition(LoadController.java:163)
    at cpw.mods.fml.common.Loader.initializeMods(Loader.java:739)
    at cpw.mods.fml.server.FMLServerHandler.finishServerLoading(FMLServerHandler.java:97)
    at cpw.mods.fml.common.FMLCommonHandler.onServerStarted(FMLCommonHandler.java:319)
    at net.minecraft.server.dedicated.DedicatedServer.startServer(DedicatedServer.java:213)
    at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:445)
    at net.minecraft.server.MinecraftServer$2.run(MinecraftServer.java:752)
Caused by: java.lang.NoClassDefFoundError: net/minecraft/client/model/ModelBiped
    at fr.mymod.other.SkinChanger.<init>(SkinChanger.java:27)
    at fr.mymod.MyMod.init(GTALife.java:143)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
    at java.lang.reflect.Method.invoke(Unknown Source)
    at cpw.mods.fml.common.FMLModContainer.handleModStateEvent(FMLModContainer.java:532)
    at sun.reflect.GeneratedMethodAccessor7.invoke(Unknown Source)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
    at java.lang.reflect.Method.invoke(Unknown Source)
    at com.google.common.eventbus.EventSubscriber.handleEvent(EventSubscriber.java:74)
    at com.google.common.eventbus.SynchronizedEventSubscriber.handleEvent(SynchronizedEventSubscriber.java:47)
    at com.google.common.eventbus.EventBus.dispatch(EventBus.java:322)
    at com.google.common.eventbus.EventBus.dispatchQueuedEvents(EventBus.java:304)
    at com.google.common.eventbus.EventBus.post(EventBus.java:275)
    at cpw.mods.fml.common.LoadController.sendEventToModContainer(LoadController.java:212)
    at cpw.mods.fml.common.LoadController.propogateStateMessage(LoadController.java:190)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
    at java.lang.reflect.Method.invoke(Unknown Source)
    at com.google.common.eventbus.EventSubscriber.handleEvent(EventSubscriber.java:74)
    at com.google.common.eventbus.SynchronizedEventSubscriber.handleEvent(SynchronizedEventSubscriber.java:47)
    at com.google.common.eventbus.EventBus.dispatch(EventBus.java:322)
    at com.google.common.eventbus.EventBus.dispatchQueuedEvents(EventBus.java:304)
    at com.google.common.eventbus.EventBus.post(EventBus.java:275)
    at cpw.mods.fml.common.LoadController.distributeStateMessage(LoadController.java:119)
    at cpw.mods.fml.common.Loader.initializeMods(Loader.java:737)
    ... 5 more
Caused by: java.lang.ClassNotFoundException: net.minecraft.client.model.ModelBiped
    at net.minecraft.launchwrapper.LaunchClassLoader.findClass(LaunchClassLoader.java:191)
    at java.lang.ClassLoader.loadClass(Unknown Source)
    at java.lang.ClassLoader.loadClass(Unknown Source)
    ... 33 more
Caused by: java.lang.RuntimeException: Attempted to load class net/minecraft/client/model/ModelBiped for invalid side SERVER
    at cpw.mods.fml.common.asm.transformers.SideTransformer.transform(SideTransformer.java:50)
    at net.minecraft.launchwrapper.LaunchClassLoader.runTransformers(LaunchClassLoader.java:279)
    at net.minecraft.launchwrapper.LaunchClassLoader.findClass(LaunchClassLoader.java:176)
    ... 35 more



Merci d'avance !
Répondre
#2
Salut, tout d'abord, tu es dans la mauvaise section. Si tu es le créateur du mod, il faut alors dans "Support pour les moddeurs". Ensuite, tu essaies d'accèder à une classe client sur un serveur donc il crash. Tout ce qui est rendu ce fait sur le client, pas le serveur.
Je suis un membre apprécié et joueur, j'ai déjà obtenu 8 point(s) de réputation.

J'ai et je suis triste d'avoir 12 points d'ICRating

Répondre
#3
(27-04-2018, 10:03)LavaPower a écrit : Salut, tout d'abord, tu es dans la mauvaise section. Si tu es le créateur du mod, il faut alors dans "Support pour les moddeurs". Ensuite, tu essaies d'accèder à une classe client sur un serveur donc il crash. Tout ce qui est rendu ce fait sur le client, pas le serveur.

Effectivement, du coup comment dois-je faire ?  :s
Répondre
#4
Comme dit, plus haut, mauvaise section.
Ensuite, il est interdit de modifier le skin d'un joueur. Si tu veux appliquer un skin précis au joueur, il faut lui demander de le mettre lui-même, mais il doit avoir le choix de le mettre ou pas.

EDIT : J'ai déplacé, mais la prochaine fois, je sanctionne.
Si vous souhaitez me faire un don, il vous suffit de cliquer sur le bouton situé en dessous.

[Image: btn_donate_SM.gif]

Les dons serviront à m'acheter les composants pour monter un ordinateur.

Je suis un membre apprécié et joueur, j'ai déjà obtenu 16 points de réputation.
Répondre
#5
(27-04-2018, 10:13)Superloup10 a écrit : Comme dit, plus haut, mauvaise section.
Ensuite, il est interdit de modifier le skin d'un joueur. Si tu veux appliquer un skin précis au joueur, il faut lui demander de le mettre lui-même, mais il doit avoir le choix de le mettre ou pas.

EDIT : J'ai déplacé, mais la prochaine fois, je sanctionne.

Effectivement, il aura le choix de le mettre ou pas puisque le skin se met si il effectue une commande précise.
Répondre
#6
Le code en question ne doit pas être exécute sur le serveur, enregistre cette classe d'event dans le client proxy au lieu de la classe principale et mets un @SideOnly(Side.CLIENT) au dessus.
Répondre
#7
(27-04-2018, 11:06)robin4002 a écrit : Le code en question ne doit pas être exécute sur le serveur, enregistre cette classe d'event dans le client proxy au lieu de la classe principale et mets un @SideOnly(Side.CLIENT) au dessus.

Ok, mais du coup je met quoi exactement dans le registerRender du ClientProxy ?

EDIT : C'est bon je pense avoir compris, je vous tiens au jus
Répondre
#8
J'ai bien enregistrer la classe dans le ClientProxy, cependant le problème c'est que lorsque je met le skin, je vois tous les autres joueurs avec ce skin et les autres ne voient pas mon skin.

Comment remédier à cela ? Merci
Répondre
#9
Les autres personnes ont aussi le mod ?
Répondre
#10
(27-04-2018, 21:11)robin4002 a écrit : Les autres personnes ont aussi le mod ?

Oui, mais quand je dis autres personnes c'est simplement que sur le debug de mon IDE j'ouvre 2 clients sur un serveur et je constate ce que j'ai écris plus haut
Répondre


Atteindre :


Utilisateur(s) parcourant ce sujet : 1 visiteur(s)