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.
    • robin4002R Hors-ligne
      robin4002 Moddeurs confirmés Rédacteurs Administrateurs
      dernière édition par

      Salut,
      Main.instance est null, surement car l’annotation @Mod.Instance n’est plus au-dessus de cette dernière.

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

                                            MINECRAFT FORGE FRANCE © 2024

                                            Powered by NodeBB