MFF

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

    [1.12] Créer un four

    Planifier Épinglé Verrouillé Déplacé Les interfaces (GUI) et les container
    1.11.x
    58 Messages 13 Publieurs 15.9k Vues 7 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.
    • BrokenSwingB Hors-ligne
      BrokenSwing Moddeurs confirmés Rédacteurs
      dernière édition par

      En fait tu as implémenté la mauvaise interface, il faut implémenter net.minecraft.util.ITickable et non net.minecraft.client.renderer.texture.ITickable

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

        Merci beaucoup BrokenSwing !! Tout fonctionne maintenant

        **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
        • A Hors-ligne
          Alexzaros
          dernière édition par

          Bonjour,

          J’ai un problème avec l’enregistrement du nom-custom :
          (code en piéces jointe)

          • je renomme le four, je le pose, le nom apparaît.
            le nom dans toutes les fonctions apparaît, je redémarre :

          la fonction hascustomname renvoie true en début de partie.
          WriteToNBT affiche bien “test”.
          cependant readfromnbt lui affiche null.
          Les getters et setter ont bien “test”, le container et le gui handler cotes serveur a bien “test”,
          cependant celui cotes client et le gui affiche null.

          ensuite une fois le container ouvert :
          hascustomname devient false et toute les fonction affiche null (même le container).

          une fois partit, et le menu pour quitter afficher, has affiche true et writeToNBT affiche
          “test”.

          merci d’avance
          Cordialement, Alexzaros.

          1 réponse Dernière réponse Répondre Citer 0
          • BrokenSwingB Hors-ligne
            BrokenSwing Moddeurs confirmés Rédacteurs
            dernière édition par

            J’ai pas le temps de tester avec tes sources, mais essai de changer le 8 dans java if (compound.hasKey("CustomName", 8)) { par ```java
            NBT.TAG_STRING

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

              Ca n’a rien changer, j’avais essayer hier d’enlever carrément le bloc conditionnel sa n’avais rien changer… Mais c’est quand même bizarre que certaine fonction on bien le nom, que l’enregistrement fonctionne mais que la fonction read n’arrive pas a charger le nom, normalement dans ce cas les autres fonction ne devrait pas avoir le nom ?
              En tout cas merci pour votre réponse rapide ^^ en espérant que nous allons trouver ce qui ne va pas …

              EDIT: D’ailleurs javais essayer aussi avec un autre block, de modifier via un bouton un boolean sa le modifier bien mais le block n’avais pas le bon boolean (il était toujours a false) et je crois que la fonction readFromNBT ne l’avais pas non plus (je me rappelle plus trop sa date de quelque jour déjà ^^').

              1 réponse Dernière réponse Répondre Citer 0
              • BrokenSwingB Hors-ligne
                BrokenSwing Moddeurs confirmés Rédacteurs
                dernière édition par

                Dans le cas de ton bouton c’est un problème de synchronisation

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

                  Mais sa voudrais dire que quand le gui (cotes client) utilise world.getTileEntity(pos) sa renvoie pas la même chose lorsque le block le fait ?
                  De plus comment synchroniser car je n’est pas réussie a utiliser les packet, et je ne sais pas vraiment quoi synchroniser avec qui …

                  Et pour le custom furnace du coup sa peu être quoi ?

                  Merci.
                  Cordialement, Alexzaros.

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

                    J’ai compris un truc :
                    Je nomme le four le thread main et server ont tout deux “test”
                    je redémarre seulement le thread server a “test”
                    j’ai essayer de synchroniser par le biais du container sa ne change rien car il sont désynchroniser des le démarrage…

                    EDIT: D’ailleurs même lors de la sauvegarde du nbt (faites sur le thread server) il y a bien “test”, donc server et client ne sont pas du  tout synchro du début a la fin, si non la valeur serait perdu …


                    J’ai enfin trouver ! En faites j’ai trouver sur une page de ce site : https://www.minecraftforgefrance.fr/showthread.php?tid=4752 (comme quoi je chercher trop loin …)
                    j’ai rajouter ces fonction dans le tile entity : 
                        @Nullable
                        public SPacketUpdateTileEntity getUpdatePacket()
                        {
                            return new SPacketUpdateTileEntity(this.pos, 1, this.getUpdateTag());
                        }

                    public NBTTagCompound getUpdateTag()
                        {
                            return this.writeToNBT(new NBTTagCompound());
                        }

                    getUpdatePacket() n’a pas l’air de faire grand chose car quand je la met entre commentaire sa fonctionne quand même.

                    voila ^^ ce que je comprend pas par contre c’est que je soit le seul a avoir eu ce problème … ou le seul a avoir demander de l’aide…

                    En tout cas merci pour tout ^^.

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

                      Salut !
                      Le code contient une erreur dans les recipes :

                      private static boolean areKeysEqual(ItemStack[] key1, ItemStack[] key2) {
                      
                          if(key1.length != key2.length) return false;
                      
                       
                      
                          for(int i = 0; i < key1.length; i++) {
                      
                              ItemStack s1 = key1[i];
                      
                              ItemStack s2 = key2[i};
                      
                              if(s1.isEmpty() && !s2.isEmpty()) return false;
                      
                              if(!s1.isEmpty() && s2.isEmpty()) return false;
                      
                              if(s1.getItem() != s2.getItem()) return false;
                      
                              if(s1.getItemDamage() != s2.getItemDamage()) return false;
                      
                          }
                      
                          return true;
                      
                      }
                      

                      Devrait s’écrire comme ceci, sinon cela donne une erreur :

                      private static boolean areKeysEqual(ItemStack[] key1, ItemStack[] key2) {
                      
                          if(key1.length != key2.length) return false;
                      
                       
                      
                          for(int i = 0; i < key1.length; i++) {
                      
                              ItemStack s1 = key1[i];
                      
                              ItemStack s2 = key2[i];
                      
                              if(s1.isEmpty() && !s2.isEmpty()) return false;
                      
                              if(!s1.isEmpty() && s2.isEmpty()) return false;
                      
                              if(s1.getItem() != s2.getItem()) return false;
                      
                              if(s1.getItemDamage() != s2.getItemDamage()) return false;
                      
                          }
                      
                          return true;
                      
                      }
                      

                      Sinon très bon tuto 🙂 ! Bonne journée !

                      My name is Gollum1er :)

                      BrokenSwingB 1 réponse Dernière réponse Répondre Citer 0
                      • BrokenSwingB Hors-ligne
                        BrokenSwing Moddeurs confirmés Rédacteurs @Gollum1er
                        dernière édition par

                        @Gollum1er C’est réglé, merci

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

                          Ce message a été supprimé !
                          1 réponse Dernière réponse Répondre Citer 0
                          • A Hors-ligne
                            Aiko
                            dernière édition par

                            Bonjour, j’ai suivi le tuto à lettre pour voir si cela fonctionner, malheureusement une erreur survient, si j’ai bien compris ma textures n’est pas trouver. Voici l’erreur tout de même :

                            [13:15:30] [Server thread/ERROR] [FML]: A TileEntity type com.aiko.cenamicolmod.te.TileEntityAnvil has throw an exception trying to write state. It will not persist. Report this to the mod author
                            java.lang.RuntimeException: class com.aiko.cenamicolmod.te.TileEntityAnvil is missing a mapping! This is a bug!
                            	at net.minecraft.tileentity.TileEntity.writeInternal(TileEntity.java:89) ~[TileEntity.class:?]
                            	at net.minecraft.tileentity.TileEntity.writeToNBT(TileEntity.java:80) ~[TileEntity.class:?]
                            	at net.minecraft.tileentity.TileEntityLockable.writeToNBT(TileEntityLockable.java:22) ~[TileEntityLockable.class:?]
                            	at com.aiko.cenamicolmod.te.TileEntityAnvil.writeToNBT(TileEntityAnvil.java:38) ~[TileEntityAnvil.class:?]
                            	at net.minecraft.world.chunk.storage.AnvilChunkLoader.writeChunkToNBT(AnvilChunkLoader.java:415) [AnvilChunkLoader.class:?]
                            	at net.minecraft.world.chunk.storage.AnvilChunkLoader.saveChunk(AnvilChunkLoader.java:186) [AnvilChunkLoader.class:?]
                            	at net.minecraft.world.gen.ChunkProviderServer.saveChunkData(ChunkProviderServer.java:214) [ChunkProviderServer.class:?]
                            	at net.minecraft.world.gen.ChunkProviderServer.saveChunks(ChunkProviderServer.java:242) [ChunkProviderServer.class:?]
                            	at net.minecraft.world.WorldServer.saveAllChunks(WorldServer.java:1061) [WorldServer.class:?]
                            	at net.minecraft.server.MinecraftServer.saveAllWorlds(MinecraftServer.java:468) [MinecraftServer.class:?]
                            	at net.minecraft.server.integrated.IntegratedServer.saveAllWorlds(IntegratedServer.java:274) [IntegratedServer.class:?]
                            	at net.minecraft.server.MinecraftServer.tick(MinecraftServer.java:766) [MinecraftServer.class:?]
                            	at net.minecraft.server.integrated.IntegratedServer.tick(IntegratedServer.java:192) [IntegratedServer.class:?]
                            	at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:592) [MinecraftServer.class:?]
                            	at java.lang.Thread.run(Thread.java:748) [?:1.8.0_201]
                            
                            

                            Je suis en 1.12.2 si cela peut aider.
                            Merci d’avance pour l’aide.

                            1 réponse Dernière réponse Répondre Citer 0
                            • BrokenSwingB Hors-ligne
                              BrokenSwing Moddeurs confirmés Rédacteurs
                              dernière édition par

                              Salut,

                              Tu n’as pas enregistré ta TileEntity dans le registre.

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

                                @BrokenSwing C’est à dire ?

                                BrokenSwingB 1 réponse Dernière réponse Répondre Citer 0
                                • BrokenSwingB Hors-ligne
                                  BrokenSwing Moddeurs confirmés Rédacteurs @Aiko
                                  dernière édition par

                                  @Aiko C’est à dire que tu n’as pas bien suivi le tuto 🙂 Il te manque très certainement la ligne suivante : GameRegistry.registerTileEntity(TileCustomFurnace.class, "modid:tile_custom_furnace");

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

                                    @BrokenSwing Oui en effet merci mais mtn rien ne se passe…
                                    Voici les classe que j’ai utilisé :

                                    Classe du block :
                                    https://pastebin.com/mVtbYtZY

                                    Classe du TileEntity:
                                    https://pastebin.com/DDzBTqLU

                                    Classe du Container :
                                    https://pastebin.com/ECKrR7kz

                                    Classe du GUI:
                                    https://pastebin.com/fF17qQFs

                                    Il y a également la classe GuiHandler et Recipes donc si besoin je peux les mettre également

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

                                      Bonjour alors j’ai suivi ce tuto (qui était extrêmement bien expliqué en passant) et j’ai un problème c’est que déjà das mes classes je n’ai aucune fonction instance qui est utilisée dans deux classe !error.png J’ai également une erreur au niveau de ma classe tileentity il me demande d’ajouter des methode est ce que je dois le faire (et les modifier peut etre). error2.png Il y en a également une dans ma classe principale mais elle est toujours du a la fonction instance^^. error3.png Merci

                                      1 réponse Dernière réponse Répondre Citer 0
                                      • robin4002R Hors-ligne
                                        robin4002 Moddeurs confirmés Rédacteurs Administrateurs
                                        dernière édition par

                                        Bonjour,
                                        Pour l’instance, voir le tutoriel sur la base du mod: https://www.minecraftforgefrance.fr/topic/2906/créer-la-base-de-son-mod
                                        Pour les méthodes non implémenté dans la classe TileMachineBuilder, cliques sur add unimplemented methods et regardes à la fin, il faudra ajouter le contenu appropriée dans les méthodes ajoutées.

                                        T 2 réponses Dernière réponse Répondre Citer 0
                                        • T Hors-ligne
                                          TionebBen3119 @robin4002
                                          dernière édition par

                                          @robin4002 Alors premierement merci et ensuite il me reste cette erreur. Il que je retire @override, et aussi la methode qu’il m’a generer je ne vois pas comment la completer ^^

                                          T 1 réponse Dernière réponse Répondre Citer 0
                                          • T Hors-ligne
                                            TionebBen3119 @TionebBen3119
                                            dernière édition par

                                            @TionebBen3119 error.png

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

                                            MINECRAFT FORGE FRANCE © 2024

                                            Powered by NodeBB