MFF

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

    [1.12.2] problème avec mon GUI

    Planifier Épinglé Verrouillé Déplacé Résolu 1.12.x
    1.12.2
    29 Messages 2 Publieurs 1.3k Vues 2 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.
    • TheXrayFRT Hors-ligne
      TheXrayFR
      dernière édition par

      @Mod.Instance("familygame")
          public static Main instance;
      

      pourtemp sy ses bizard

      Voicy tous mon Main.java

      package fr.thexrayfr.familygame;
      
      import fr.thexrayfr.familygame.blocks.FamilyBlocks;
      import fr.thexrayfr.familygame.gui.GuiHandler;
      import fr.thexrayfr.familygame.init.FamilygameRecipe;
      import fr.thexrayfr.familygame.items.FamilyItems;
      import fr.thexrayfr.familygame.tile.*;
      import fr.thexrayfr.familygame.util.ObjectRegistry;
      import fr.thexrayfr.familygame.world.FamilyWorldGen;
      import net.minecraft.creativetab.CreativeTabs;
      import net.minecraft.item.Item;
      import net.minecraft.item.ItemStack;
      import net.minecraft.util.ResourceLocation;
      import net.minecraftforge.fml.common.Mod;
      import net.minecraftforge.fml.common.SidedProxy;
      import net.minecraftforge.fml.common.event.FMLInitializationEvent;
      import net.minecraftforge.fml.common.event.FMLPreInitializationEvent;
      import net.minecraftforge.fml.common.network.NetworkRegistry;
      import net.minecraftforge.fml.common.registry.GameRegistry;
      
      
      @Mod(modid = "familygame", name = "Family-Game", version = "8.5.1", acceptedMinecraftVersions = "[1.12.2]")
      public class Main {
          public static final String MODID = "familygame";
      
          public static final CreativeTabs TABFAMILYGAME = new CreativeTabs("tab_familygame") {
      
              public ItemStack getTabIconItem() {
      
                  return new ItemStack(Item.getItemFromBlock(FamilyBlocks.KITCHEN_FURNITURE_1_DIORITE_OAK));
              }
          };
          public static final CreativeTabs TABFAMILYGAMETOOLS = new CreativeTabs("tab_familygame_tools") {
      
              public ItemStack getTabIconItem() {
      
                  return new ItemStack(FamilyItems.PALADIUM_HELMET);
              }
          };
          public static final CreativeTabs TABFAMILYGAMEKITCHEN = new CreativeTabs("tab_familygame_kitchen") {
      
              public ItemStack getTabIconItem() {
      
                  return new ItemStack(Item.getItemFromBlock(FamilyBlocks.KITCHEN_FURNITURE_1_DIORITE_OAK));
              }
          };
          public static final CreativeTabs TABFAMILYGAMEPAINT = new CreativeTabs("tab_familygame_paint") {
      
              public ItemStack getTabIconItem() {
      
                  return new ItemStack(Item.getItemFromBlock(FamilyBlocks.YL_PAINT));
              }
          };
      
          @Mod.Instance("familygame")
          public static Main instance;
      
          @SidedProxy(clientSide = "fr.thexrayfr.familygame.proxy.FamilyClient", serverSide = "fr.thexrayfr.familygame.proxy.FamilyServer")
          public static FamilyCommon proxy;
      
          private ObjectRegistry registry;
      
          @Mod.EventHandler
          public void preInit(FMLPreInitializationEvent event) {
              proxy.preInit(event.getSuggestedConfigurationFile());
      
              this.registry = new ObjectRegistry("familygame");
      
              FamilyBlocks.init(this.registry);
              FamilyItems.init(this.registry);
              GameRegistry.registerWorldGenerator(new FamilyWorldGen(), 3);
          }
      
      
          @Mod.EventHandler
          public void init(FMLInitializationEvent event) {
              proxy.init();
              FamilygameRecipe.init();
              NetworkRegistry.INSTANCE.registerGuiHandler(instance, new GuiHandler());
              GameRegistry.registerTileEntity(TileEntityCrate.class, String.valueOf(new ResourceLocation("familygame", "TileEntityCrate")));
              GameRegistry.registerTileEntity(TileEntityCratePlus.class, String.valueOf(new ResourceLocation("familygame", "TileEntityCratePlus")));
              GameRegistry.registerTileEntity(TileEntityTable.class, String.valueOf(new ResourceLocation("familygame", "TileEntityTable")));
              GameRegistry.registerTileEntity(TileEntityBarrel.class, String.valueOf(new ResourceLocation("familygame", "TileEntityBarrel")));
              GameRegistry.registerTileEntity(TileEntityKitchen.class, String.valueOf(new ResourceLocation("familygame", "TileEntityKitchen")));
          }
      }
      
      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

        Ah non au temps pour moi, j’ai mal lu le rapport de crash.

        C’est un item de l’inventaire associé au gui qui est null.
        Il faut utiliser des NonNullList en 1.12.

        TheXrayFRT 1 réponse Dernière réponse Répondre Citer 0
        • TheXrayFRT Hors-ligne
          TheXrayFR @robin4002
          dernière édition par

          @robin4002

          et comment on utilisa sa svp je débute un peut en java 🙂

          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

            Regardes dans le code du tile entity du coffre.

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

              ok je vais regarder

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

                dans le tile ya pas de onBlockActivated

                et dans la clase du block chest sa resemble a sa!

                public boolean onBlockActivated(World worldIn, BlockPos pos, IBlockState state, EntityPlayer playerIn, EnumHand hand, EnumFacing facing, float hitX, float hitY, float hitZ)
                    {
                        if (worldIn.isRemote)
                        {
                            return true;
                        }
                        else
                        {
                            ILockableContainer ilockablecontainer = this.getLockableContainer(worldIn, pos);
                
                            if (ilockablecontainer != null)
                            {
                                playerIn.displayGUIChest(ilockablecontainer);
                
                                if (this.chestType == BlockChest.Type.BASIC)
                                {
                                    playerIn.addStat(StatList.CHEST_OPENED);
                                }
                                else if (this.chestType == BlockChest.Type.TRAP)
                                {
                                    playerIn.addStat(StatList.TRAPPED_CHEST_TRIGGERED);
                                }
                            }
                
                            return true;
                        }
                    }
                

                ses pas du tous la même chose

                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

                  Le problème ne se trouve pas dans ton bloc mais dans ton tile entity.

                  TheXrayFRT 1 réponse Dernière réponse Répondre Citer 0
                  • TheXrayFRT Hors-ligne
                    TheXrayFR @robin4002
                    dernière édition par

                    @robin4002

                    package fr.thexrayfr.familygame.tile;
                     
                     import net.minecraft.entity.player.EntityPlayer;
                     import net.minecraft.inventory.ItemStackHelper;
                     import net.minecraft.item.ItemStack;
                     import net.minecraft.nbt.NBTTagCompound;
                     
                     public class TileEntityBarrel extends TileEntityStorage
                     {
                       public int getSizeInventory()
                       {
                         return 18;
                       }
                    
                         @Override
                         public boolean isEmpty() {
                             return false;
                         }
                    
                         @Override
                         public ItemStack getStackInSlot(int index) {
                             return null;
                         }
                    
                         @Override
                         public ItemStack decrStackSize(int index, int count) {
                             return null;
                         }
                    
                         @Override
                         public ItemStack removeStackFromSlot(int index) {
                             return null;
                         }
                    
                         @Override
                         public int getInventoryStackLimit() {
                             return 0;
                         }
                    
                         @Override
                         public boolean isUsableByPlayer(EntityPlayer player) {
                             return false;
                         }
                    
                         @Override
                         public void openInventory(EntityPlayer player) {
                    
                         }
                    
                         @Override
                         public void closeInventory(EntityPlayer player) {
                    
                         }
                    
                         @Override
                         public boolean isItemValidForSlot(int index, ItemStack stack) {
                             return false;
                         }
                    
                         @Override
                         public int getField(int id) {
                             return 0;
                         }
                    
                         @Override
                         public void setField(int id, int value) {
                    
                         }
                    
                         @Override
                         public int getFieldCount() {
                             return 0;
                         }
                    
                         @Override
                         public void clear() {
                    
                         }
                    
                    
                         public void readFromNBT(NBTTagCompound compound)
                       {
                         super.readFromNBT(compound);
                         ItemStackHelper.loadAllItems(compound, this.stacks);
                       }
                       
                     
                       public NBTTagCompound writeToNBT(NBTTagCompound compound)
                       {
                         ItemStackHelper.saveAllItems(compound, this.stacks);
                         return super.writeToNBT(compound);
                       }
                    
                         @Override
                         public String getName() {
                             return null;
                         }
                    
                         @Override
                         public boolean hasCustomName() {
                             return false;
                         }
                     }
                    

                    il ma demander quand je lais mise a joue d’importer ca donc apret

                    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

                      TileEntityStorage contient quoi ?

                      Et tu as pleins de fonction non implémenté qui retourne null, ce n’est pas bon. getStackInSlot, decrStackSize, removeStackFromSlot etc.

                      TheXrayFRT 1 réponse Dernière réponse Répondre Citer 1
                      • TheXrayFRT Hors-ligne
                        TheXrayFR @robin4002
                        dernière édition par

                        @robin4002

                        package fr.thexrayfr.familygame.tile;
                         
                         import net.minecraft.entity.player.EntityPlayer;
                         import net.minecraft.inventory.IInventory;
                         import net.minecraft.inventory.ItemStackHelper;
                         import net.minecraft.item.ItemStack;
                         import net.minecraft.tileentity.TileEntity;
                         import net.minecraft.util.NonNullList;
                        
                         
                         public abstract class TileEntityStorage extends TileEntity implements IInventory
                         {
                        
                           public NonNullList<ItemStack> stacks = NonNullList.withSize(getSizeInventory(), ItemStack.EMPTY);
                        
                           public String getName()
                           {
                            return null;
                           }
                        
                           public boolean hasCustomName()
                           {
                             return false;
                           }
                           
                           public boolean isEmpty()
                           {
                             for (ItemStack itemstack : this.stacks)
                             {
                               if (!itemstack.isEmpty())
                               {
                                 return false;
                               }
                             }
                             
                             return true;
                           }
                         
                           public ItemStack getStackInSlot(int index)
                           {
                             return (ItemStack)this.stacks.get(index);
                           }
                        
                           public ItemStack decrStackSize(int index, int count)
                           {
                             return ItemStackHelper.getAndSplit(this.stacks, index, count);
                           }
                        
                           public ItemStack removeStackFromSlot(int index)
                           {
                             this.stacks.set(index, ItemStack.EMPTY);
                             return getStackInSlot(index);
                           }
                        
                           public void setInventorySlotContents(int index, ItemStack stack)
                           {
                             this.stacks.set(index, stack);
                           }
                        
                           public int getInventoryStackLimit()
                           {
                             return 64;
                           }
                        
                           public boolean isUsableByPlayer(EntityPlayer player)
                           {
                             if (this.world.getTileEntity(this.pos) != this)
                             {
                               return false;
                             }
                        
                             return player.getDistanceSq(this.pos.getX() + 0.5D, this.pos.getY() + 0.5D, this.pos.getZ() + 0.5D) <= 64.0D;
                           }
                        
                           public void openInventory(EntityPlayer player) {}
                        
                           public void closeInventory(EntityPlayer player) {}
                        
                           public boolean isItemValidForSlot(int index, ItemStack stack)
                           {
                             return true;
                           }
                        
                           public int getField(int id)
                           {
                             return 0;
                           }
                           public void setField(int id, int value) {}
                        
                           public int getFieldCount()
                           {
                             return 0;
                           }
                        
                           public void clear()
                           {
                             this.stacks.clear();
                           }
                         }
                        
                        1 réponse Dernière réponse Répondre Citer 0
                        • TheXrayFRT Hors-ligne
                          TheXrayFR
                          dernière édition par

                          jais fait le ménage

                          package fr.thexrayfr.familygame.tile;
                           
                           import net.minecraft.entity.player.EntityPlayer;
                           import net.minecraft.inventory.ItemStackHelper;
                           import net.minecraft.item.ItemStack;
                           import net.minecraft.nbt.NBTTagCompound;
                           
                           public class TileEntityBarrel extends TileEntityStorage
                           {
                               
                             public int getSizeInventory()
                             {
                               return 18;
                             }
                          
                               @Override
                               public boolean isEmpty() {
                                   return false;
                               }
                          
                               @Override
                               public int getInventoryStackLimit() {
                                   return 0;
                               }
                          
                               @Override
                               public boolean isUsableByPlayer(EntityPlayer player) {
                                   return false;
                               }
                          
                               @Override
                               public void openInventory(EntityPlayer player) {
                          
                               }
                          
                               @Override
                               public void closeInventory(EntityPlayer player) {
                          
                               }
                          
                               @Override
                               public boolean isItemValidForSlot(int index, ItemStack stack) {
                                   return false;
                               }
                          
                               @Override
                               public int getField(int id) {
                                   return 0;
                               }
                          
                               @Override
                               public void setField(int id, int value) {
                          
                               }
                          
                               @Override
                               public int getFieldCount() {
                                   return 0;
                               }
                          
                               @Override
                               public void clear() {
                          
                               }
                          
                               public void readFromNBT(NBTTagCompound compound)
                             {
                               super.readFromNBT(compound);
                               ItemStackHelper.loadAllItems(compound, this.stacks);
                             }
                             
                           
                             public NBTTagCompound writeToNBT(NBTTagCompound compound)
                             {
                               ItemStackHelper.saveAllItems(compound, this.stacks);
                               return super.writeToNBT(compound);
                             }
                          
                               @Override
                               public boolean hasCustomName() {
                                   return false;
                               }
                               
                           }
                          
                          1 réponse Dernière réponse Répondre Citer 0
                          • TheXrayFRT Hors-ligne
                            TheXrayFR
                            dernière édition par

                            déja sa crash plus sa ouvre et referme le gui

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

                              2019-01-16 20-54-15.zip

                              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

                                Ta fonction isUsableByPlayer retourne toujours faux, c’est pour ça que cela ne fonctionne pas.

                                TheXrayFRT 1 réponse Dernière réponse Répondre Citer 1
                                • TheXrayFRT Hors-ligne
                                  TheXrayFR
                                  dernière édition par

                                  une petite vidéo pour te montrer se qui se passe

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

                                    ses bon le hui s’ouvre mes maintenant ses le snift clique qui pose problème

                                    1 réponse Dernière réponse Répondre Citer 0
                                    • TheXrayFRT Hors-ligne
                                      TheXrayFR @robin4002
                                      dernière édition par

                                      @robin4002

                                      ses pas du au:

                                      public ItemStack transferStackInSlot(EntityPlayer playerIn, int index) {
                                           ItemStack itemstack = ItemStack.EMPTY;
                                           Slot slot = (Slot) this.inventorySlots.get(index);
                                      
                                           if ((slot != null) && (slot.getHasStack())) {
                                             ItemStack itemstack1 = slot.getStack();
                                             itemstack = itemstack1.copy();
                                      
                                             if (index < 9) {
                                               if (!mergeItemStack(itemstack1, 18, this.inventorySlots.size(), true)) {
                                                 return ItemStack.EMPTY;
                                               }
                                             } else if (!mergeItemStack(itemstack1, 0, 18, false)) {
                                               return ItemStack.EMPTY;
                                             }
                                      
                                             if (itemstack1.isEmpty()) {
                                               slot.putStack(ItemStack.EMPTY);
                                             } else {
                                               slot.onSlotChanged();
                                             }
                                           }
                                      
                                           return itemstack;
                                         }
                                      

                                      ???

                                      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

                                        Si c’est bien cette fonction qui gère le shift clic.

                                        TheXrayFRT 1 réponse Dernière réponse Répondre Citer 1
                                        • TheXrayFRT Hors-ligne
                                          TheXrayFR
                                          dernière édition par TheXrayFR

                                          @robin4002
                                          je comprent pas pourquoi il bug quand je shift click sa crash

                                          1 réponse Dernière réponse Répondre Citer 0
                                          • TheXrayFRT Hors-ligne
                                            TheXrayFR @robin4002
                                            dernière édition par

                                            @robin4002 tu ses a peut prêt dout sa peut être ?

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

                                            MINECRAFT FORGE FRANCE © 2024

                                            Powered by NodeBB