MFF

    Minecraft Forge France
    • Récent
    • Mots-clés
    • Populaire
    • Utilisateurs
    • Groupes
    • Forge Events
      • Automatique
      • Foncé
      • Clair
    • S'inscrire
    • Se connecter

    Mon Mods ne Fonctione pas sur serveur

    Planifier Épinglé Verrouillé Déplacé Résolu 1.9.x et 1.10.x
    1.10.x
    13 Messages 3 Publieurs 2.0k Vues 1 Watching
    Charger plus de messages
    • Du plus ancien au plus récent
    • Du plus récent au plus ancien
    • Les plus votés
    Répondre
    • Répondre à l'aide d'un nouveau sujet
    Se connecter pour répondre
    Ce sujet a été supprimé. Seuls les utilisateurs avec les droits d'administration peuvent le voir.
    • AymericRedA Hors-ligne
      AymericRed
      dernière édition par

      Alors, il y a plusieurs problèmes : La prochaine fois, mets des balises java pour ton code, ça sera plus clair et plus simple à lire.
      Ensuite, il faut que tu revoies les noms de tes fonctions, leurs noms ne sont pas tous cohérents (celle render(…) notamment).

      Pour ton problème de crash, pourquoi as-tu mis une annotation “@SideOnly(Side.SERVER)” sur une fonction de rendu ? L’annotation pour le server n’est à utiliser que dans de très rares cas (elle ne fonctionne pas pour le serveur du mode solo). Il faut que tu mettes l’inverse pour ne plus avoir de crash, donc “@SideOnly(Side.CLIENT)” et que tu n’appelles cette fonction que si tu es sur le client (donc tu mets un if au dessus de l’appel de la fonction. Pour savoir si tu es sur le client tu peux faire ```java
      if(FMLCommonHandler.instance().getSide().isClient())

      Si je vous ai aidé, n'oubliez pas d’être heureux, j'aiderai encore +

      AymericRed, moddeur expérimenté qui aide sur ce forum et qui peut accepter de faire un mod Forge rémunéré de temps en temps.

      Mes tutos : Table de craft, plugin NEI, plugin JEI, modifier l'overlay
      Je suis un membre apprécié et joueur, j'ai déjà obtenu 6 points de réputation.

      1 réponse Dernière réponse Répondre Citer 0
      • F Hors-ligne
        Fury
        dernière édition par

        Tu veux me dire que( private void renders(){ ) je doit mettre private void renders(Block block){ ou quoi alors je doit faire quoi aux juste.?
        que tu veux dire par cohérents?

        1 réponse Dernière réponse Répondre Citer 0
        • AymericRedA Hors-ligne
          AymericRed
          dernière édition par

          Cohérent=logique.
          Le premier paragraphe et le deuxième n’ont pas de lien. Pour le 1er paragraphe la fontion “render(Block)” enregistre le block et pas le rendu, donc elle devrait s’appeler “registerBlock(Block)”, le code serait plus facile à comprendre comme ça.

          Si je vous ai aidé, n'oubliez pas d’être heureux, j'aiderai encore +

          AymericRed, moddeur expérimenté qui aide sur ce forum et qui peut accepter de faire un mod Forge rémunéré de temps en temps.

          Mes tutos : Table de craft, plugin NEI, plugin JEI, modifier l'overlay
          Je suis un membre apprécié et joueur, j'ai déjà obtenu 6 points de réputation.

          1 réponse Dernière réponse Répondre Citer 0
          • F Hors-ligne
            Fury
            dernière édition par

            private void renders(){
            registerBlock(orangeneon);

            }
            @SideOnly(Side.CLIENT)
            private void registerRenders(){
            registerRender(orangeneon,0);

            }
            private void registerItemBlocks(){
            registerItemBlock(orangeneon);

            }
            /**************************/
            private void registerBlock(Block block){
            GameRegistry.register(block);
            }
            private void registerRender(Block block,int meta){
            ModelLoader.setCustomModelResourceLocation(Item.getItemFromBlock(block),meta,new ModelResourceLocation(new ResourceLocation(References.MODID,block.getUnlocalizedName().substring(5)),“inventory”));
            }
            private void registerItemBlock(Block block){
            ItemBlock ib = new ItemBlock(block);
                ib.setRegistryName(block.getRegistryName());
                GameRegistry.register(ib);

            –-------------
            Mais maintenant il dit que sais le registerRender pk

            1 réponse Dernière réponse Répondre Citer 0
            • A Hors-ligne
              aypristyle
              dernière édition par

              Tu as vérifier les proxys ?

              **Je suis un membre apprécié et joueur, j'ai déjà obtenu 1[ point de réputation./…

              1 réponse Dernière réponse Répondre Citer 0
              • F Hors-ligne
                Fury
                dernière édition par

                package com.fury.tuto.proxy;

                import init.ModBlocks;
                import init.ModItem;

                public class CommonProxy {
                public void preInit(){
                new ModBlocks();
                new ModItem();

                }
                public void init(){

                }

                }
                –---------------------------------------------------------
                public class ServerProxy extends CommonProxy{
                @Override
                public void preInit(){
                super.preInit();

                }
                @Override
                public void init(){
                super.init();
                }

                }
                Server et client son pareille

                1 réponse Dernière réponse Répondre Citer 0
                • AymericRedA Hors-ligne
                  AymericRed
                  dernière édition par

                  “La prochaine fois, mets des balises java pour ton code, ça sera plus clair et plus simple à lire.”

                  Là sans aucune balise c’est très dur à lire, en plus la classe est pas en entière.
                  Mets la classe de tes blocks en entier dans une balise java ```java
                  code ici

                  Si je vous ai aidé, n'oubliez pas d’être heureux, j'aiderai encore +

                  AymericRed, moddeur expérimenté qui aide sur ce forum et qui peut accepter de faire un mod Forge rémunéré de temps en temps.

                  Mes tutos : Table de craft, plugin NEI, plugin JEI, modifier l'overlay
                  Je suis un membre apprécié et joueur, j'ai déjà obtenu 6 points de réputation.

                  1 réponse Dernière réponse Répondre Citer 0
                  • F Hors-ligne
                    Fury
                    dernière édition par

                    Ma class de mes block```java
                    package init;

                    import com.fury.tuto.References;

                    import net.minecraft.block.Block;
                    import net.minecraft.block.material.Material;
                    import net.minecraft.client.renderer.block.model.ModelResourceLocation;
                    import net.minecraft.creativetab.CreativeTabs;
                    import net.minecraft.item.Item;
                    import net.minecraft.item.ItemBlock;
                    import net.minecraft.util.ResourceLocation;
                    import net.minecraftforge.client.model.ModelLoader;
                    import net.minecraftforge.fml.common.registry.GameRegistry;
                    import net.minecraftforge.fml.relauncher.Side;
                    import net.minecraftforge.fml.relauncher.SideOnly;

                    public class ModBlocks {
                    public ModBlocks(){
                    init();
                    renders();
                    registerItemBlocks();
                    registerRenders();
                    }

                    public static Block orangeneon;
                    private void init(){
                    orangeneon = new Block(Material.IRON).setRegistryName(“orangeneon”).setUnlocalizedName(“orangeneon”).setHardness(2.0f).setResistance(1.5f).setCreativeTab(CreativeTabs.BUILDING_BLOCKS);

                    }
                    private void renders(){
                    registerBlock(orangeneon);

                    }
                    @SideOnly(Side.CLIENT)
                    private void registerRenders(){
                    registerMeta(orangeneon,0);

                    }
                    private void registerItemBlocks(){
                    registerItemBlock(orangeneon);

                    }
                    /**************************/
                    private void registerBlock(Block block){
                    GameRegistry.register(block);
                    }
                    private void registerMeta(Block block, int meta){
                    Item item = Item.getItemFromBlock(block);
                    ModelLoader.setCustomModelResourceLocation(item, 0, new ModelResourceLocation(item.getRegistryName(),“inventory”));
                    }
                    private void registerItemBlock(Block block){
                    ItemBlock ib = new ItemBlock(block);
                       ib.setRegistryName(block.getRegistryName());
                       GameRegistry.register(ib);

                    }
                    }
                    Ma classe CommmonProxy java
                    package com.fury.tuto.proxy;

                    import init.ModBlocks;
                    import init.ModItem;
                    import init.ModsBriks;
                    import init.SandBlock;
                    import init.SandstoneBlock;

                    public class CommonProxy {
                    public void preInit(){
                    new ModBlocks();
                    new ModItem();

                    }
                    public void init(){

                    }

                    }

                    1 réponse Dernière réponse Répondre Citer 0
                    • AymericRedA Hors-ligne
                      AymericRed
                      dernière édition par

                      Alors les noms sont toujours pas logiques, “renders()”=>“registerBlocks()”, “registerMeta” => “registerRender” ce sera mieux ^^

                      Sinon pour ton crash tu n’as pas fait ce que je t’ai dit de faire :
                      @AymericRed:

                      […]et que tu n’appelles cette fonction que si tu es sur le client (donc tu mets un if au dessus de l’appel de la fonction. Pour savoir si tu es sur le client tu peux faire ```java
                      if(FMLCommonHandler.instance().getSide().isClient())

                      (la fonction “registerRenders”)

                      Si je vous ai aidé, n'oubliez pas d’être heureux, j'aiderai encore +

                      AymericRed, moddeur expérimenté qui aide sur ce forum et qui peut accepter de faire un mod Forge rémunéré de temps en temps.

                      Mes tutos : Table de craft, plugin NEI, plugin JEI, modifier l'overlay
                      Je suis un membre apprécié et joueur, j'ai déjà obtenu 6 points de réputation.

                      1 réponse Dernière réponse Répondre Citer 0
                      • F Hors-ligne
                        Fury
                        dernière édition par

                        comme ça ```java
                        public class ModBlocks {
                        public ModBlocks(){
                        init();
                        registerBlocks();
                        registerItemBlocks();
                        registerRenders();
                        }

                        public static Block orangeneon;
                        private void init(){
                        orangeneon = new Block(Material.IRON).setRegistryName(“orangeneon”).setUnlocalizedName(“orangeneon”).setHardness(2.0f).setResistance(1.5f).setCreativeTab(CreativeTabs.BUILDING_BLOCKS);

                        }
                        private void registerBlocks(){
                        registerBlock(orangeneon);

                        }

                        @SideOnly(Side.CLIENT)
                        private void registerRenders(){
                        if(FMLCommonHandler.instance().getSide().isClient())
                        registerRender(orangeneon,0);

                        }
                        private void registerItemBlocks(){
                        registerItemBlock(orangeneon);

                        }
                        /**************************/
                        private void registerBlock(Block block){
                        GameRegistry.register(block);
                        }
                        private void registerRender(Block block, int meta){
                        Item item = Item.getItemFromBlock(block);
                        ModelLoader.setCustomModelResourceLocation(item, 0, new ModelResourceLocation(item.getRegistryName(),“inventory”));

                        }
                        private void registerItemBlock(Block block){
                        ItemBlock ib = new ItemBlock(block);
                            ib.setRegistryName(block.getRegistryName());
                            GameRegistry.register(ib);

                        }
                        }
                        mais je sais pas ou mettre ce codesjava
                        if(FMLCommonHandler.instance().getSide().isClient())

                        1 réponse Dernière réponse Répondre Citer 0
                        • AymericRedA Hors-ligne
                          AymericRed
                          dernière édition par

                          Tu devrais lire ça https://openclassrooms.com/courses/apprenez-a-programmer-en-java c’est très intéressant.
                          Je t’ai dit de le mettre au dessus de l’appel de la fonction “registerRenders” donc comme ça :

                          public ModBlocks(){
                          init();
                          registerBlocks();
                          registerItemBlocks();
                          if(FMLCommonHandler.instance().getSide().isClient())
                          registerRenders();
                          }
                          

                          Si je vous ai aidé, n'oubliez pas d’être heureux, j'aiderai encore +

                          AymericRed, moddeur expérimenté qui aide sur ce forum et qui peut accepter de faire un mod Forge rémunéré de temps en temps.

                          Mes tutos : Table de craft, plugin NEI, plugin JEI, modifier l'overlay
                          Je suis un membre apprécié et joueur, j'ai déjà obtenu 6 points de réputation.

                          1 réponse Dernière réponse Répondre Citer 0
                          • F Hors-ligne
                            Fury
                            dernière édition par

                            Merci ca fonctione.

                            1 réponse Dernière réponse Répondre Citer 0
                            • 1 / 1
                            • Premier message
                              Dernier message
                            Design by Woryk
                            ContactMentions Légales

                            MINECRAFT FORGE FRANCE © 2024

                            Powered by NodeBB