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

                                Tu peux envoyer le rapport de crash ?

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

                                  @robin4002 il en na pas

                                  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 cela crash il y a forcément quelque chose dans les logs.

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

                                      @robin4002
                                      2019-01-16 21-58-41.zip

                                      de meme je peut même pas mètre d’objet a l’interrieur

                                       package fr.thexrayfr.familygame.container;
                                       
                                       import fr.thexrayfr.familygame.tile.TileEntityBarrel;
                                       import net.minecraft.entity.player.EntityPlayer;
                                       import net.minecraft.entity.player.InventoryPlayer;
                                       import net.minecraft.inventory.Container;
                                       import net.minecraft.inventory.Slot;
                                       import net.minecraft.item.ItemStack;
                                       
                                       public class ContainerBarrel extends Container
                                       {
                                         private final TileEntityBarrel tileTuto;
                                         
                                         public ContainerBarrel(TileEntityBarrel tile, InventoryPlayer inventory)
                                         {
                                      
                                           this.tileTuto = tile;
                                           tile.openInventory(inventory.player);
                                      
                                           for (int i = 0; i < 6; i++)
                                           {
                                             for (int j = 0; j < 3; j++)
                                             {
                                               addSlotToContainer(new Slot(tile, j + i * 3, 62 + j * 18, 18 + i * 18));
                                             }
                                           }
                                           bindPlayerInventory(inventory);
                                         }
                                       
                                         private void bindPlayerInventory(InventoryPlayer inventory)
                                         {
                                           for (int i = 0; i < 3; i++)
                                           {
                                             for (int j = 0; j < 9; j++)
                                             {
                                               addSlotToContainer(new Slot(inventory, j + i * 9 + 9, 8 + j * 18, 138 + i * 18));
                                             }
                                           }
                                      
                                           for (int i = 0; i < 9; i++)
                                           {
                                             addSlotToContainer(new Slot(inventory, i, 8 + i * 18, 196));
                                           }
                                         }
                                      
                                         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;
                                         }
                                       
                                         public boolean canInteractWith(EntityPlayer player)
                                         {
                                           return this.tileTuto.isUsableByPlayer(player);
                                         }
                                         
                                       
                                         public void onContainerClosed(EntityPlayer player)
                                         {
                                           super.onContainerClosed(player);
                                           this.tileTuto.closeInventory(player);
                                         }
                                       }
                                      
                                      1 réponse Dernière réponse Répondre Citer 0
                                      • TheXrayFRT Hors-ligne
                                        TheXrayFR
                                        dernière édition par

                                        dans le TileEntity

                                         package fr.thexrayfr.familygame.tile;
                                        
                                         import net.minecraft.inventory.ItemStackHelper;
                                         import net.minecraft.nbt.NBTTagCompound;
                                         
                                         public class TileEntityBarrel extends TileEntityStorage
                                         {
                                             @Override
                                           public int getSizeInventory()
                                           {
                                             return 18;
                                           }
                                        
                                             @Override
                                           public void readFromNBT(NBTTagCompound compound)
                                           {
                                             super.readFromNBT(compound);
                                             ItemStackHelper.loadAllItems(compound, this.stacks);
                                           }
                                        
                                             @Override
                                           public NBTTagCompound writeToNBT(NBTTagCompound compound)
                                           {
                                             ItemStackHelper.saveAllItems(compound, this.stacks);
                                             return super.writeToNBT(compound);
                                           }
                                        
                                         }
                                        

                                        Dans le contenair

                                         package fr.thexrayfr.familygame.container;
                                         
                                         import fr.thexrayfr.familygame.tile.TileEntityBarrel;
                                         import net.minecraft.entity.player.EntityPlayer;
                                         import net.minecraft.entity.player.InventoryPlayer;
                                         import net.minecraft.inventory.Container;
                                         import net.minecraft.inventory.Slot;
                                         import net.minecraft.item.ItemStack;
                                         
                                         public class ContainerBarrel extends Container
                                         {
                                           private final TileEntityBarrel tileTuto;
                                           
                                           public ContainerBarrel(TileEntityBarrel tile, InventoryPlayer inventory)
                                           {
                                        
                                             this.tileTuto = tile;
                                             tile.openInventory(inventory.player);
                                        
                                             for (int i = 0; i < 6; ++i)
                                             {
                                               for (int j = 0; j < 3; ++j)
                                               {
                                                 this.addSlotToContainer(new Slot(tile, j + i * 3, 62 + j * 18, 18 + i * 18));
                                               }
                                             }
                                             this.bindPlayerInventory(inventory);
                                           }
                                         
                                           private void bindPlayerInventory(InventoryPlayer inventory)
                                           {
                                             int i;
                                             for (i = 0; i < 3; ++i)
                                             {
                                               for (int j = 0; j < 9; ++j)
                                               {
                                                 this.addSlotToContainer(new Slot(inventory, j + i * 9 + 9, 8 + j * 18, 138 + i * 18));
                                               }
                                             }
                                        
                                             for (i = 0; i < 9; ++i)
                                             {
                                               this.addSlotToContainer(new Slot(inventory, i, 8 + i * 18, 196));
                                             }
                                           }
                                        
                                           @Override
                                           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 (!this.mergeItemStack(itemstack1, 18, this.inventorySlots.size(), true)) {
                                                   return ItemStack.EMPTY;
                                                 }
                                               } else if (!this.mergeItemStack(itemstack1, 0, 18, false)) {
                                                 return ItemStack.EMPTY;
                                               }
                                        
                                               if (itemstack1.isEmpty())
                                               {
                                                 slot.putStack(ItemStack.EMPTY);
                                               }
                                               else
                                               {
                                                 slot.onSlotChanged();
                                               }
                                             }
                                        
                                             return itemstack;
                                           }
                                        
                                           @Override
                                           public boolean canInteractWith(EntityPlayer player)
                                           {
                                             return this.tileTuto.isUsableByPlayer(player);
                                           }
                                        
                                           @Override
                                           public void onContainerClosed(EntityPlayer player)
                                           {
                                             super.onContainerClosed(player);
                                             this.tileTuto.closeInventory(player);
                                           }
                                         }
                                        

                                        se que j’ai changer ses les ++i et ++j qui étai i++ et j++ donc je les ais inversser

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

                                        MINECRAFT FORGE FRANCE © 2024

                                        Powered by NodeBB