Impossible d'utiliser Render Player API



  • Salut tout le monde 🙂
    J'ai téléchargé la version core 1.0 de Render Player API (ici). J'ai ajouté les sources dans mon projet, mais lorsque je lance mon jeu, aucun mod supplémentaire ne s'affiche. J'ai donc pensé, vu qu'il y a un coremod dans Render Player API qu'il fallait rajouter une ligne supplémentaire dans le build.gradle, n'est-ce pas ? Je n'ai donc rien tenté de + à ce niveau, je me suis contenté (en + d'avoir déjà les sources) de rajouter le mod recompilé en .jar dans eclipse/mods/ et là tout marche nikel. Mon problème se trouve à un autre endroit, lorsque je veux enregistrer mes nouveaux RenderPlayer et ModelPlayer à l'aide de ceci dans ma méthode init :

    
    if(FMLCommonHandler.instance().getSide().isClient())
    {
    RenderPlayerAPI.register(StolenLifeMod.MODID, CustomPlayerRender.class);
    ModelPlayerAPI.register(StolenLifeMod.MODID, CustomPlayerModel.class);
    }
    
    

    Cependant ça ne marche pas car j'obtiens ce crash report au lancement du jeu :

    –-- Minecraft Crash Report ----
    // Oh - I know what I did wrong!
    
    Time: 21/11/15 15:35
    Description: Initializing game
    
    java.lang.RuntimeException:
    
    ========================================
    The API "Render Player" version 1.0 of the mod "Render Player API core 1.0" can not be created!
    ----------------------------------------
    Mandatory member method "fr.stdevteam.stolenlife.api.player.render.RenderPlayerBase getRenderPlayerBase(java.lang.String)" not found in class "net.minecraft.client.renderer.entity.RenderPlayer".
    There are three scenarios this can happen:
    * Minecraft Forge is missing a Render Player API core which Minecraft version matches its own.
     Download and install the latest Render Player API core for the Minecraft version you were trying to run.
    * The code of the class "net\minecraft\client\renderer\entity\RenderPlayer" of Render Player API core has been modified beyond recognition by another Minecraft Forge coremod.
     Try temporary deinstallation of other core mods to find the culprit and deinstall it permanently to fix this specific problem.
    * Render Player API core has not been installed correctly.
     Deinstall Render Player API core and install it again following the installation instructions in the readme file.
    ========================================
    
    at fr.stdevteam.stolenlife.api.player.render.RenderPlayerAPI.register(RenderPlayerAPI.java:91)
    at fr.stdevteam.stolenlife.api.player.render.RenderPlayerAPI.register(RenderPlayerAPI.java:32)
    at fr.stdevteam.stolenlife.api.player.render.RenderPlayerAPI.register(RenderPlayerAPI.java:25)
    at fr.stdevteam.stolenlife.common.core.StolenLifeMod.init(StolenLifeMod.java:60)
    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.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.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)
    at cpw.mods.fml.client.FMLClientHandler.finishMinecraftLoading(FMLClientHandler.java:311)
    at net.minecraft.client.Minecraft.startGame(Minecraft.java:597)
    at net.minecraft.client.Minecraft.run(Minecraft.java:942)
    at net.minecraft.client.main.Main.main(Main.java:164)
    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 net.minecraft.launchwrapper.Launch.launch(Launch.java:135)
    at net.minecraft.launchwrapper.Launch.main(Launch.java:28)
    at net.minecraftforge.gradle.GradleStartCommon.launch(Unknown Source)
    at GradleStart.main(Unknown Source)
    Caused by: java.lang.NoSuchMethodException: fr.stdevteam.stolenlife.api.player.render.RenderPlayerBase net.minecraft.client.renderer.entity.RenderPlayer.getRenderPlayerBase(java.lang.String)
    at fr.stdevteam.stolenlife.api.player.render.RenderPlayerAPI.register(RenderPlayerAPI.java:53)
    ... 42 more
    
    A detailed walkthrough of the error, its code path and all known details is as follows:
    ---------------------------------------------------------------------------------------
    
    -- Head --
    Stacktrace:
    at fr.stdevteam.stolenlife.api.player.render.RenderPlayerAPI.register(RenderPlayerAPI.java:91)
    at fr.stdevteam.stolenlife.api.player.render.RenderPlayerAPI.register(RenderPlayerAPI.java:32)
    at fr.stdevteam.stolenlife.api.player.render.RenderPlayerAPI.register(RenderPlayerAPI.java:25)
    at fr.stdevteam.stolenlife.common.core.StolenLifeMod.init(StolenLifeMod.java:60)
    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.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.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)
    at cpw.mods.fml.client.FMLClientHandler.finishMinecraftLoading(FMLClientHandler.java:311)
    at net.minecraft.client.Minecraft.startGame(Minecraft.java:597)
    
    -- Initialization --
    Details:
    Stacktrace:
    at net.minecraft.client.Minecraft.run(Minecraft.java:942)
    at net.minecraft.client.main.Main.main(Main.java:164)
    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 net.minecraft.launchwrapper.Launch.launch(Launch.java:135)
    at net.minecraft.launchwrapper.Launch.main(Launch.java:28)
    at net.minecraftforge.gradle.GradleStartCommon.launch(Unknown Source)
    at GradleStart.main(Unknown Source)
    
    -- System Details --
    Details:
    Minecraft Version: 1.7.10
    Operating System: Windows 7 (amd64) version 6.1
    Java Version: 1.7.0_71, Oracle Corporation
    Java VM Version: Java HotSpot(TM) 64-Bit Server VM (mixed mode), Oracle Corporation
    Memory: 670155504 bytes (639 MB) / 1038876672 bytes (990 MB) up to 1038876672 bytes (990 MB)
    JVM Flags: 3 total; -Xincgc -Xmx1024M -Xms1024M
    AABB Pool Size: 0 (0 bytes; 0 MB) allocated, 0 (0 bytes; 0 MB) used
    IntCache: cache: 0, tcache: 0, allocated: 0, tallocated: 0
    FML: MCP v9.05 FML v7.10.99.99 Minecraft Forge 10.13.4.1558 5 mods loaded, 5 mods active
    States: 'U' = Unloaded 'L' = Loaded 'C' = Constructed 'H' = Pre-initialized 'I' = Initialized 'J' = Post-initialized 'A' = Available 'D' = Disabled 'E' = Errored
    UCHI mcp{9.05} [Minecraft Coder Pack] (minecraft.jar)
    UCHI FML{7.10.99.99} [Forge Mod Loader] (forgeSrc-1.7.10-10.13.4.1558-1.7.10.jar)
    UCHI Forge{10.13.4.1558} [Minecraft Forge] (forgeSrc-1.7.10-10.13.4.1558-1.7.10.jar)
    UCHI RenderPlayerAPI{1.0} [Render Player API] (minecraft.jar)
    UCHE stolenlifemod{1.0.0} [Stolen Life Mod] (bin)
    GL info: ' Vendor: 'ATI Technologies Inc.' Version: '4.5.13399 Compatibility Profile Context 15.200.1062.1004' Renderer: 'AMD Radeon R7 200 Series'
    Launched Version: 1.7.10
    LWJGL: 2.9.1
    OpenGL: AMD Radeon R7 200 Series GL version 4.5.13399 Compatibility Profile Context 15.200.1062.1004, ATI Technologies Inc.
    GL Caps: Using GL 1.3 multitexturing.
    Using framebuffer objects because OpenGL 3.0 is supported and separate blending is supported.
    Anisotropic filtering is supported and maximum anisotropy is 16.
    Shaders are available because OpenGL 2.1 is supported.
    
    Is Modded: Definitely; Client brand changed to 'fml,forge'
    Type: Client (map_client.txt)
    Resource Packs: []
    Current Language: English (US)
    Profiler Position: N/A (disabled)
    Vec3 Pool Size: 0 (0 bytes; 0 MB) allocated, 0 (0 bytes; 0 MB) used
    Anisotropic Filtering: Off (1)
    

    J'ai donc regardé de + près, 3 causes me sont proposés :
    -Soit je me suis trompé de version dans Render Player API par-rapport à celle de MC –> Ce n'est pas le cas
    -Soit la classe net\minecraft\client\renderer\entity\RenderPlayer aurait été modifié par un autre coremod forge --> Ce n'est pas non plus le cas
    -Ou alors Render Player API aurait été mal installé --> Je ne pense pas

    Alors je ne vois vraiment ps comment procéder. J'ai regardé les sources de Smart Moving, ils se servent de classes supplémentaires, telles que RenderPlayerBaseSorting et ModelPlayerBaseSorting. J'ai aussi essayé comme eux mais même résultat. Je ne comprends vraiment pas...
    En tout cas merci d'avance 😃



  • Si tu as mis le jar dans le dossier mods, as-tu pensé à utiliser la version de développement ou alors as-tu installé le CodeChickenCore ?

    Quels mods sont installés dans ton environnement ?



  • J'ai juste installé ce mod et pourquoi est ce que j'aurai besoin de CCC ?!
    Il me semblait que les sources suffisaient…
    Et puis le mod marche très bien, c'est juste dès que j'essaie d'enregistrer mon PlayerModelBase et mon PlayerRenderBase que ça coince 😞


  • Moddeurs confirmés Rédacteurs Administrateurs

    Render Player API est un core mod, il faut ajouter un argument pour qu'il soit reconnu correctement.
    Déjà vire-le du dossier mods et mets le dans le dossier forge-src/libs
    Ensuite refait un gradlew eclipe, ça devrait l'ajouter aux bibliothèques du projet.
    Ensuite dans les arguments de lancement du projet ajoutes -Dfml.coreMods.load=leCheminDufichierIFMLPlugin
    Tu peux trouver chemin dans le fichier manifest qui se trouve dans le dossier META-INF du jar du mod.



  • OK merci de ta réponse mais je ne trouve pas le dossier forge-src/libs ? Il est où ?


  • Moddeurs confirmés Rédacteurs Administrateurs

    Il existe pas. Faut le créé. (faut juste faire un dossier libs dans le dossier forge ou tu as aussi le dossier src, le dossier gradle etc …)



  • Ok merci ça marche nikel, mais j'ai tout de même une dernière question : Est-ce que c'est toujours la même procédure quand je veux me servir d'une API, qu'elle soit un coremod ou pas ? J'imagine que oui …

    EDIT = J'en profite pour ricocher sur un autre prob toujours avec la même API. J'ai ce code qui normalement, me permet de faire allonger le joueur :

    
    public class CustomPlayerModel extends ModelPlayerBase
    {
    
    public CustomPlayerModel(ModelPlayerAPI modelPlayerAPI)
    {
    super(modelPlayerAPI);
    }
    
    @Override
    public void setRotationAngles(float paramFloat1, float paramFloat2, float paramFloat3, float paramFloat4, float paramFloat5, float paramFloat6, net.minecraft.entity.Entity paramEntity)
    {
        this.modelPlayer.bipedRightLeg.rotateAngleX = -1.5F;
        this.modelPlayer.bipedLeftLeg.rotateAngleX = -1.5F;
    super.setRotationAngles(paramFloat1, paramFloat2, paramFloat3, paramFloat4, paramFloat5, paramFloat6, paramEntity);
    }
    }
    
    

    Malheureusement, ça ne marche pas...Je ne sais pas si c'est à cause de ces 2 ligne là dans le ModelBiped#setRotationAngles
    this.bipedRightLeg.rotateAngleY = 0.0F;
    this.bipedLeftLeg.rotateAngleY = 0.0F;
    Merci d'avance 😃


  • Moddeurs confirmés Rédacteurs Administrateurs

    Je n'ai aucune idée de comment fonctionne player api donc je ne sais pas 😕



  • Ok prob corrigé !
    Il fallait juste placer le .setRotationAngles au début de la fonction et non tout à la fin 😉
    Merci à tous ! Cette fois je clos vraiment le sujet x)



  • Bonjour, je sais que le sujet est clos depuit longtemps mais j'ai le même probleme et la solution que tu as proposé ne marche pas (ou je la fais mal) quelqu'un pourrait m'aider svp ? 🙂



  • Joli déterrage de 2 ans et demie, mais je peux t'aider. Voici ma vieille classe si ça peut t'aiguiller.



  • Merci 😄 Regarde juste en message privé stp 🙂


Log in to reply