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.2k 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

      je veriffy

      1 réponse Dernière réponse Répondre Citer 0
      • 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
                                            • 1
                                            • 2
                                            • 1 / 2
                                            • Premier message
                                              Dernier message
                                            Design by Woryk
                                            ContactMentions Légales

                                            MINECRAFT FORGE FRANCE © 2024

                                            Powered by NodeBB