Problème de gui



  • Bien le bonjour , cela fait 2 jours que je cherche une solution a un problème : j'ai suivi votre tutoriel sur les gui/container et je rencontre un problème : en gros quand je place mon block il est placé et tous vas bien mais dès que veux ouvrir elle ne s'ouvre pas , le block que j'ai dans la main ne se fait pas placer j'en conclu donc qu'il comprend qu'il doit m'ouvrir quelque chose mais qu'il n'y arrive pas.
    C'est pourquoi je vous demandes si vous pouvez m'aidez à trouver la solution de solution mon problème.
    Ma class principale :
    http://pastebin.com/WMxCaxmW
    la class de mon block :
    http://pastebin.com/A7dhdEnr
    mon title entity :
    http://pastebin.com/WaDz5gxY
    mon guihandler :
    http://pastebin.com/gtLTsSyy
    mon container :
    http://pastebin.com/PwbnLX4b
    ma gui :
    http://pastebin.com/5f166kJg

    Merci d'avance pour votre réponse et bonne journée/soirée a vous.



  • Salut. Dans la classe de ton block, essaye de remplacer java         FMLNetworkHandler.openGui(player, ewifaction.instance, 0, world, x, y, z);         return true; par ```java
          if(!world.isRemote)
          {
              player.openGui(ewifaction.instance, 0, world, x, y, z);
              return true;
          }

    
    As tu des erreurs des les logs ? Si ca ne marche toujours pas, essaye de mettre des System.out.println("test") dans les conditions des deux fonctions de ton guiHandler. Cela affiche des messages dans les logs quand la fonction est appelé. Envoie nous ensuite les logs après avoir click droit sur ton block


  • déjà dans la class de ton block y a de fois la fonction onBlockActivated ce qui n'est pas vraiment normal
    et aussi tes fonction ne seront pas charger si elles s’appellent "onBlockActivated1" ….

    voici la class de ton block tu n'a plus qu'a copier coller

    
    package thecraft.mod.common;
    
    import cpw.mods.fml.common.network.internal.FMLNetworkHandler;
    import net.minecraft.block.Block;
    import net.minecraft.block.material.Material;
    import net.minecraft.entity.EntityLivingBase;
    import net.minecraft.entity.item.EntityItem;
    import net.minecraft.entity.player.EntityPlayer;
    import net.minecraft.inventory.IInventory;
    import net.minecraft.item.ItemStack;
    import net.minecraft.nbt.NBTTagCompound;
    import net.minecraft.tileentity.TileEntity;
    import net.minecraft.tileentity.TileEntityChest;
    import net.minecraft.world.World;
    
    public class Ewilitechest extends Block 
    {
    protected Ewilitechest(Material material) 
    {
    super(material);
    }
    public TileEntity createTileEntity(World world)
    {
    return new TileEntityEwiliteChest();
    }
    
    public boolean hasTileEntity(int metadata)
        {
            return true;
        }
    @Override
    public boolean onBlockActivated(World world, int x, int y, int z, EntityPlayer player, int side, float hitX, float hitY, float hitZ)
      {
          if(world.isRemote)
          {
              return true;
          }
          else
          {
              player.openGui(ewifaction.instance, 0, world, x, y, z);
              return true;
          }
      }
    public void breakBlock(World world, int x, int y, int z, Block block, int metadata)
      {
          TileEntity tileentity = world.getTileEntity(x, y, z);
    
          if(tileentity instanceof IInventory)
          {
              IInventory inv = (IInventory)tileentity;
              for(int i1 = 0; i1 < inv.getSizeInventory(); ++i1)
              {
                  ItemStack itemstack = inv.getStackInSlot(i1);
    
                  if(itemstack != null)
                  {
                      float f = world.rand.nextFloat() * 0.8F + 0.1F;
                      float f1 = world.rand.nextFloat() * 0.8F + 0.1F;
                      EntityItem entityitem;
    
                      for(float f2 = world.rand.nextFloat() * 0.8F + 0.1F; itemstack.stackSize > 0; world.spawnEntityInWorld(entityitem))
                      {
                          int j1 = world.rand.nextInt(21) + 10;
    
                          if(j1 > itemstack.stackSize)
                          {
                              j1 = itemstack.stackSize;
                          }
    
                          itemstack.stackSize -= j1;
                          entityitem = new EntityItem(world, (double)((float)x + f), (double)((float)y + f1), (double)((float)z + f2), new ItemStack(itemstack.getItem(), j1, itemstack.getItemDamage()));
                          float f3 = 0.05F;
                          entityitem.motionX = (double)((float)world.rand.nextGaussian() * f3);
                          entityitem.motionY = (double)((float)world.rand.nextGaussian() * f3 + 0.2F);
                          entityitem.motionZ = (double)((float)world.rand.nextGaussian() * f3);
    
                          if(itemstack.hasTagCompound())
                          {
                              entityitem.getEntityItem().setTagCompound((NBTTagCompound)itemstack.getTagCompound().copy());
                          }
                      }
                  }
              }
              world.func_147453_f(x, y, z, block);
          }
          super.breakBlock(world, x, y, z, block, metadata);
      }
    public void onBlockPlacedBy(World world, int x, int y, int z, EntityLivingBase living, ItemStack stack)
      {
          TileEntity tile = world.getTileEntity(x, y, z);
          if(tile instanceof TileEntityEwiliteChest)
          {
              if(stack.hasDisplayName())
              {
                  ((TileEntityEwiliteChest)tile).setCustomName(stack.getDisplayName(), textureName);
              }
          }
      }
    
    } 
    
    


  • Merci pour vos réponse , je vais essayer je vous préviens si sa fonctionne.
    Edit : désolé sa ne fonctionne pas avec les 2 codes que vous m'avez proposé , je n'ai aucune log dans la console. si vous avez une autre solution je sui preneur



  • Ton GuiHandler est-il bien enregistré dans ton proxy ?
    Si non, enregistre le comme ça : ```java
    NetworkRegistry.INSTANCE.registerGuiHandler(ewifaction.instance, new GuiHandlerChristmas());



  • oui cette ligne est présente dans ma class ewifaction a la fin de init



  • Et tu n'as rien dans les logs quand tu met System.out.println("test") dans la condition dans le GuiHandler?

    Si ça met rien, c'est que ta condition n'est pas vérifiée. Donc ça serait sans doute un problème de TileEntity. Mais si c'est ça, je suis désolé je ne pourrais pas t'aider d'avantage, je ne connaît pas les TileEntity  je n'en ai jamais fait.



  • Renvoi tout tont code stp, tout le block, gui , guihandler , block, class principale , proxy client et common
    et tu sais tu peut utilisé les balise java dans ton message pour le code c'est plus simple



  • oui ,

    ma class principale :
    
    package thecraft.mod.common;
    
    import java.awt.Color;
    
    import cpw.mods.fml.common.Mod;
    import cpw.mods.fml.common.Mod.EventHandler;
    import cpw.mods.fml.common.Mod.Instance;
    import cpw.mods.fml.common.SidedProxy;
    import cpw.mods.fml.common.event.FMLInitializationEvent;
    import cpw.mods.fml.common.event.FMLPostInitializationEvent;
    import cpw.mods.fml.common.event.FMLPreInitializationEvent;
    import cpw.mods.fml.common.network.NetworkRegistry;
    import cpw.mods.fml.common.registry.EntityRegistry;
    import cpw.mods.fml.common.registry.GameRegistry;
    import net.minecraft.block.Block;
    import net.minecraft.block.material.Material;
    import net.minecraft.creativetab.CreativeTabs;
    import net.minecraft.entity.Entity;
    import net.minecraft.init.Items;
    import net.minecraft.item.Item;
    import net.minecraft.item.Item.ToolMaterial;
    import net.minecraft.item.ItemArmor.ArmorMaterial;
    import net.minecraft.item.ItemStack;
    import net.minecraftforge.common.util.EnumHelper;
    import thecraft.mod.proxy.commonproxy;
    
    @Mod(modid = ewifaction.MODID, name = "ewifaction" , version = "1.0.0")
    
    public class ewifaction
    {
    public static CreativeTabs exonorCreativeTabs = new exonorCreativeTabs("ewifaction_creative_tabs");
    public static final String MODID = "ewifaction";
    @Instance(MODID)
    public static ewifaction instance;
    
    @SidedProxy(clientSide = "thecraft.mod.proxy.clientproxy", serverSide = "thecraft.mod.proxy.commonproxy" )
    public static commonproxy proxy;
    
    public static Item itemExonite, itemMaxencite, HelmetExonite, ChestPlateExonite, LegginsExonite, BootsExonite, exonitesworld, exnoitpichaxe, exoniteaxe, exonitchovel, exonithoe, HelmetMaxencite, ChestplateMaxencite, leggingsMaxencite, BootsMaxencite, maxencitesworld, maxencitepickaxe, maxenciteaxe, maxencitechovel, maxencitehoe, itemewilite, helmetewilite, chestplateewilite, leggingsewilite, bootsewilite, ewilitesworld;
    public static Block oreExonite, exoniteblock, oreMaxencite, blockmaxencite, oreEwilite, blockewilite, ewilitechest;
    
    public static ArmorMaterial exonitarmor = EnumHelper.addArmorMaterial("exonitarmor", 1999, new int[]{3, 7, 5, 2}, 32);
    public static ToolMaterial exoniteTool = EnumHelper.addToolMaterial("exonitetool", 15, 2444, 13.0F, 6, 40);
    public static ArmorMaterial maxenciteArmor = EnumHelper.addArmorMaterial("maxencitearmor", 999, new int []{3, 7, 4, 2}, 20);
    public static ToolMaterial maxenciteTool = EnumHelper.addToolMaterial("maxencitetool", 8, 1199, 10.0F, 4, 25);
    public static ArmorMaterial ewilitearmor = EnumHelper.addArmorMaterial("ewilitearmor", 3999, new int []{5, 10, 8, 5}, 40);
    public static ToolMaterial ewilitetool = EnumHelper.addToolMaterial("ewilitetool", 15, 1499, 15.0F, 13, 40);
    
    @EventHandler
    public void preInit(FMLPreInitializationEvent test)
    {
    itemExonite = new ItemExonite().setUnlocalizedName("exonit").setTextureName(MODID + ":itemexonittex");
    HelmetExonite = new ItemExonitArmor(exonitarmor, 0).setUnlocalizedName("helmetexonit").setTextureName(MODID + ":exonithelmettex");
    ChestPlateExonite = new ItemExonitArmor(exonitarmor, 1).setUnlocalizedName("chestplateexonite").setTextureName(MODID + ":exonitechestplatetex");
    LegginsExonite = new ItemExonitArmor(exonitarmor, 2).setUnlocalizedName("leggingsexonit").setTextureName(MODID + ":exoniteleggingstex");
    BootsExonite = new ItemExonitArmor(exonitarmor, 3).setUnlocalizedName("bootsexonit").setTextureName(MODID + ":exonitbootstex");
    exonitesworld = new ItemExoniteSworld(exoniteTool).setUnlocalizedName("sworldexonite").setTextureName(MODID + ":exonitesworldtex");
    exnoitpichaxe = new ItemExonitePichaxe(exoniteTool).setUnlocalizedName("exonitepickaxe").setTextureName(MODID + ":exonitepickaxetex");
    exoniteaxe = new ItemExoniteAxe(exoniteTool).setUnlocalizedName("exoniteaxe").setTextureName(MODID +":exoniteaxetex");
    exonitchovel = new ItemExoniteChovel(exoniteTool).setUnlocalizedName("exonitechovel").setTextureName(MODID + ":exonitechoveltex");
    exonithoe = new ItemExoniteHoe(exoniteTool).setUnlocalizedName("exonitehoe").setTextureName(MODID + ":exonitehoetex");
    itemMaxencite = new ItemMaxencite().setUnlocalizedName("itemmaxencite").setTextureName(MODID + ":itemmaxencitetex");
    HelmetMaxencite = new ItemMaxenciteArmor(maxenciteArmor, 0).setUnlocalizedName("helmetmaxencite").setTextureName(MODID + ":helmetmaxencitetex");
    ChestplateMaxencite = new ItemMaxenciteArmor(maxenciteArmor, 1).setUnlocalizedName("chestplatemaxencite").setTextureName(MODID + ":chestplatemaxencitetex");
    leggingsMaxencite = new ItemMaxenciteArmor(maxenciteArmor, 2).setUnlocalizedName("leggingsmaxencite").setTextureName(MODID + ":leggingsmaxencitetex");
    BootsMaxencite = new ItemMaxenciteArmor(maxenciteArmor, 3).setUnlocalizedName("bootsmaxencite").setTextureName(MODID + ":bootsmaxencitetex");
    maxencitesworld = new ItemMaxenciteSworld(maxenciteTool).setUnlocalizedName("sworldmaxencite").setTextureName(MODID +":maxencitesworldtex");
    maxencitepickaxe = new ItemMaxencitePickaxe(maxenciteTool).setUnlocalizedName("pickaxemaxencite").setTextureName(MODID + ":maxencitepickaxetex");
    maxenciteaxe = new ItemMaxenciteAxe(maxenciteTool).setUnlocalizedName("axemaxencite").setTextureName(MODID + ":maxenciteaxetex");
    maxencitechovel = new ItemMaxenciteChovel(maxenciteTool).setUnlocalizedName("chovelmaxencite").setTextureName(MODID + ":maxencitechoveltex");
    maxencitehoe = new ItemMaxenciteHoe(maxenciteTool).setUnlocalizedName("hoemaxencite").setTextureName(MODID + ":maxencitehoetex");
    itemewilite = new ItemEwilite().setUnlocalizedName("itemewilite").setTextureName(MODID + ":ewiliteitemtex");
    helmetewilite = new ItemEwiliteArmor(ewilitearmor, 0).setUnlocalizedName("helmetewilite").setTextureName(MODID + ":helmetewilitetex");
    chestplateewilite = new ItemEwiliteArmor(ewilitearmor, 1).setUnlocalizedName("chestplateewilite").setTextureName(MODID + ":chestplateewilitetex");
    leggingsewilite = new ItemEwiliteArmor(ewilitearmor, 2).setUnlocalizedName("leggingsewilite").setTextureName(MODID + ":leggingsewilitetex");
    bootsewilite = new ItemEwiliteArmor(ewilitearmor, 3).setUnlocalizedName("bootsewilite").setTextureName(MODID + ":bootsewilitetex");
    ewilitesworld = new ItemEwiliteSworld(ewilitetool).setUnlocalizedName("sworldewilite").setTextureName(MODID + ":sworldewilitetex");
    
    GameRegistry.registerItem(itemExonite, "exonit");
    GameRegistry.registerItem(itemMaxencite, "maxencite");
    GameRegistry.registerItem(HelmetExonite, "exonite_helmet");
    GameRegistry.registerItem(ChestPlateExonite, "exonite_chestplate");
    GameRegistry.registerItem(LegginsExonite, "exonite_leggings");
    GameRegistry.registerItem(BootsExonite, "exonite_boots");
    GameRegistry.registerItem(exonitesworld, "exonite_sworld");
    GameRegistry.registerItem(exnoitpichaxe, "exnoit_pichaxe");
    GameRegistry.registerItem(exoniteaxe, "exonite_axe");
    GameRegistry.registerItem(exonitchovel, "exonit_chovel");
    GameRegistry.registerItem(exonithoe, "exonit_hoe");
    GameRegistry.registerItem(HelmetMaxencite, "maxencite_helmet");
    GameRegistry.registerItem(ChestplateMaxencite, "maxencite_chestplate");
    GameRegistry.registerItem(leggingsMaxencite, "maxencite_leggings");
    GameRegistry.registerItem(BootsMaxencite, "maxencite_boots");
    GameRegistry.registerItem(maxencitesworld, "maxencite_sworld");
    GameRegistry.registerItem(maxencitepickaxe, "maxencite_pickaxe");
    GameRegistry.registerItem(maxenciteaxe, "maxencite_axe");
    GameRegistry.registerItem(maxencitechovel, "maxencite_chovel");
    GameRegistry.registerItem(maxencitehoe, "maxencite_hoe");
    GameRegistry.registerItem(itemewilite, "item_ewilite");
    GameRegistry.registerItem(helmetewilite, "helmet_ewilite");
    GameRegistry.registerItem(chestplateewilite, "chestplate_ewilite");
    GameRegistry.registerItem(leggingsewilite, "leggings_ewilite");
    GameRegistry.registerItem(bootsewilite, "boots_ewilite");
    GameRegistry.registerItem(ewilitesworld, "ewilite_sworld");
    
    oreExonite = new OreExonite(Material.iron).setBlockName("oreexonite").setBlockTextureName(MODID + ":oreexonitetex").setHardness(15.0F).setResistance(4);
    exoniteblock = new ExoniteBlock(Material.iron).setBlockName("exoniteblock").setBlockTextureName(MODID + ":exoniteblocktex").setHardness(15.0F).setResistance(4);
    oreMaxencite = new OreMaxencite(Material.iron).setBlockName("oremaxencite").setBlockTextureName(MODID + ":oremaxencitetex").setHardness(7.0F).setResistance(4);
    blockmaxencite = new BlockMaxencite(Material.iron).setBlockName("blockmaxencite").setBlockTextureName(MODID + ":blockmaxencitetex").setHardness(7.0F).setResistance(4);
    oreEwilite = new OreEwilite(Material.iron).setBlockName("oreexilite").setBlockTextureName(MODID + ":oreewilitetex").setHardness(15.0F).setResistance(4);
    blockewilite = new BlockEwilite(Material.iron).setBlockName("blockewilite").setBlockTextureName(MODID + ":blockewilitetex").setHardness(15.0F).setResistance(4);
    ewilitechest = new Ewilitechest(Material.iron).setBlockName("ewilitechest").setBlockTextureName(MODID + ":ewilitechesttex").setHardness(25.0F).setResistance(10);
    
    GameRegistry.registerBlock(oreExonite, "ore_exonite");
    GameRegistry.registerBlock(exoniteblock, "exonite_block");
    GameRegistry.registerBlock(oreMaxencite, "ore_maxencite");
    GameRegistry.registerBlock(blockmaxencite, "block_maxencite");
    GameRegistry.registerBlock(blockewilite, "block_ewilite");
    GameRegistry.registerBlock(oreEwilite, "ore_ewilite");
    GameRegistry.registerBlock(ewilitechest, "ewilite_chest");
    
    GameRegistry.registerWorldGenerator(new ExonitGeneration(), 0);
    GameRegistry.registerWorldGenerator(new MaxenciteGeneration(), 0);
    GameRegistry.registerWorldGenerator(new EwiliteGeneration(), 0);
    }
    @EventHandler
    public void init(FMLInitializationEvent test)
    {
    GameRegistry.addRecipe(new ItemStack(exoniteblock), new Object[]{"SSS", "SSS", "SSS", 'S', ewifaction.itemExonite});
    GameRegistry.addRecipe(new ItemStack(HelmetExonite), new Object[]{"SSS", "S S", "   ", 'S', ewifaction.itemExonite});
    GameRegistry.addRecipe(new ItemStack(ChestPlateExonite), new Object[]{"S S", "SSS", "SSS", 'S', ewifaction.itemExonite});
    GameRegistry.addRecipe(new ItemStack(LegginsExonite), new Object[]{"SSS", "S S", "S S", 'S', ewifaction.itemExonite});
    GameRegistry.addRecipe(new ItemStack(BootsExonite), new Object[]{"   ", "S S", "S S", 'S', ewifaction.itemExonite});
    GameRegistry.addRecipe(new ItemStack(BootsExonite, 1), new Object[]{"S S", "S S", "   ", 'S', ewifaction.itemMaxencite});
    GameRegistry.addRecipe(new ItemStack(exonitesworld), new Object[]{"S", "S",  "A", 'S', ewifaction.itemExonite, 'A', Items.stick});
    GameRegistry.addRecipe(new ItemStack(exnoitpichaxe), new Object[]{"SSS", " A ", " A ", 'S', ewifaction.itemExonite, 'A', Items.stick});
    GameRegistry.addRecipe(new ItemStack(exoniteaxe), new Object[]{"SS ", "SA ", " A ", 'S', ewifaction.itemExonite, 'A', Items.stick});
    GameRegistry.addRecipe(new ItemStack(exonitchovel), new Object[]{"S", "A", "A", 'S', ewifaction.itemExonite, 'A', Items.stick});
    GameRegistry.addRecipe(new ItemStack(exonithoe), new Object[]{"SS", "A ", "A ", 'S', ewifaction.itemExonite, 'A', Items.stick});
    GameRegistry.addRecipe(new ItemStack(itemExonite, 9), new Object[]{" ", "S", " ", 'S', ewifaction.exoniteblock});
    GameRegistry.addRecipe(new ItemStack(itemExonite, 9), new Object[]{"S", " ", " ", 'S', ewifaction.exoniteblock});
    GameRegistry.addRecipe(new ItemStack(itemExonite, 9), new Object[]{" ", " ", "S", 'S', ewifaction.exoniteblock});
    GameRegistry.addRecipe(new ItemStack(blockmaxencite, 9), new Object[]{"SSS", "SSS", "SSS", 'S', ewifaction.itemMaxencite});
    GameRegistry.addRecipe(new ItemStack(HelmetMaxencite, 1), new Object[]{"SSS", "S S", "   ", 'S', ewifaction.itemMaxencite});
    GameRegistry.addRecipe(new ItemStack(ChestplateMaxencite, 1), new Object[]{"S S", "SSS", "SSS", 'S', ewifaction.itemMaxencite});
    GameRegistry.addRecipe(new ItemStack(leggingsMaxencite, 1), new Object[]{"SSS", "S S", "S S", 'S', ewifaction.itemMaxencite});
    GameRegistry.addRecipe(new ItemStack(BootsMaxencite, 1), new Object[]{"S S", "S S", "   ", 'S', ewifaction.itemMaxencite});
    GameRegistry.addRecipe(new ItemStack(BootsMaxencite, 1), new Object[]{"   ", "S S", "S S", 'S', ewifaction.itemMaxencite});
    GameRegistry.addRecipe(new ItemStack(maxencitesworld), new Object[]{"S", "S",  "A", 'S', ewifaction.itemMaxencite, 'A', Items.stick});
    GameRegistry.addRecipe(new ItemStack(maxencitepickaxe), new Object[]{"SSS", " A ", " A ", 'S', ewifaction.itemMaxencite, 'A', Items.stick});
    GameRegistry.addRecipe(new ItemStack(maxencitechovel), new Object[]{"S", "A", "A", 'S', ewifaction.itemMaxencite, 'A', Items.stick});
    GameRegistry.addRecipe(new ItemStack(maxenciteaxe), new Object[]{"SS ", "SA ", " A ", 'S', ewifaction.itemMaxencite, 'A', Items.stick});
    GameRegistry.addRecipe(new ItemStack(maxencitehoe), new Object[]{"SS", "A ", "A ", 'S', ewifaction.itemMaxencite, 'A', Items.stick});
    GameRegistry.addRecipe(new ItemStack(itemMaxencite, 9), new Object[]{" ", "S", " ", 'S', ewifaction.blockmaxencite});
    GameRegistry.addRecipe(new ItemStack(itemMaxencite, 9), new Object[]{"S", " ", " ", 'S', ewifaction.blockmaxencite});
    GameRegistry.addRecipe(new ItemStack(itemMaxencite, 9), new Object[]{" ", " ", "S", 'S', ewifaction.blockmaxencite});
    GameRegistry.addRecipe(new ItemStack(itemewilite, 9), new Object[]{"S", " ", " ", 'S', ewifaction.blockewilite});
    GameRegistry.addRecipe(new ItemStack(itemewilite, 9), new Object[]{" ", "S", " ", 'S', ewifaction.blockewilite});
    GameRegistry.addRecipe(new ItemStack(itemewilite, 9), new Object[]{" ", " ", "S", 'S', ewifaction.blockewilite});
    GameRegistry.addRecipe(new ItemStack(blockewilite, 1), new Object[]{"SSS", "SSS", "SSS", 'S', ewifaction.itemewilite});
    
    GameRegistry.addSmelting(ewifaction.oreExonite, new ItemStack(ewifaction.itemExonite), 1);
    GameRegistry.addSmelting(ewifaction.oreMaxencite, new ItemStack(ewifaction.itemMaxencite), 1);
    GameRegistry.addSmelting(ewifaction.oreEwilite, new ItemStack(ewifaction.itemewilite), 1);
    
    GameRegistry.registerTileEntity(TileEntityEwiliteChest.class, "MODID:ewilitechest");
    NetworkRegistry.INSTANCE.registerGuiHandler(instance, new GuihandlerEwifaction());
    }
    @EventHandler
    public void postInit(FMLPostInitializationEvent test)
    {
    }
    }
    
    mon block :
    
    package thecraft.mod.common;
    
    import cpw.mods.fml.common.network.internal.FMLNetworkHandler;
    import net.minecraft.block.Block;
    import net.minecraft.block.material.Material;
    import net.minecraft.entity.EntityLivingBase;
    import net.minecraft.entity.item.EntityItem;
    import net.minecraft.entity.player.EntityPlayer;
    import net.minecraft.inventory.IInventory;
    import net.minecraft.item.ItemStack;
    import net.minecraft.nbt.NBTTagCompound;
    import net.minecraft.tileentity.TileEntity;
    import net.minecraft.tileentity.TileEntityChest;
    import net.minecraft.world.World;
    
    public class Ewilitechest extends Block
    {
    public boolean onBlockActivated(World world, int x, int y, int z, EntityPlayer player, int side, float hitx, float hity, float hitz)
    {
    FMLNetworkHandler.openGui(player, ewifaction.instance, 0, world, x, y, z);
    return true;
    }
    protected Ewilitechest(Material material)
    {
    super(material);
    }
    public TileEntity createTileEntity(World world)
    {
    return new TileEntityEwiliteChest();
    }
    
    public boolean hasTileEntity(int metadata)
       {
           return true;
       }
    public void breakBlock(World world, int x, int y, int z, Block block, int metadata)
      {
          TileEntity tileentity = world.getTileEntity(x, y, z);
    
          if(tileentity instanceof IInventory)
          {
              IInventory inv = (IInventory)tileentity;
              for(int i1 = 0; i1 < inv.getSizeInventory(); ++i1)
              {
                  ItemStack itemstack = inv.getStackInSlot(i1);
    
                  if(itemstack != null)
                  {
                      float f = world.rand.nextFloat() * 0.8F + 0.1F;
                      float f1 = world.rand.nextFloat() * 0.8F + 0.1F;
                      EntityItem entityitem;
    
                      for(float f2 = world.rand.nextFloat() * 0.8F + 0.1F; itemstack.stackSize > 0; world.spawnEntityInWorld(entityitem))
                      {
                          int j1 = world.rand.nextInt(21) + 10;
    
                          if(j1 > itemstack.stackSize)
                          {
                              j1 = itemstack.stackSize;
                          }
    
                          itemstack.stackSize -= j1;
                          entityitem = new EntityItem(world, (double)((float)x + f), (double)((float)y + f1), (double)((float)z + f2), new ItemStack(itemstack.getItem(), j1, itemstack.getItemDamage()));
                          float f3 = 0.05F;
                          entityitem.motionX = (double)((float)world.rand.nextGaussian() * f3);
                          entityitem.motionY = (double)((float)world.rand.nextGaussian() * f3 + 0.2F);
                          entityitem.motionZ = (double)((float)world.rand.nextGaussian() * f3);
    
                          if(itemstack.hasTagCompound())
                          {
                              entityitem.getEntityItem().setTagCompound((NBTTagCompound)itemstack.getTagCompound().copy());
                          }
                      }
                  }
              }
              world.func_147453_f(x, y, z, block);
          }
          super.breakBlock(world, x, y, z, block, metadata);
      }
    public void onBlockPlacedBy(World world, int x, int y, int z, EntityLivingBase living, ItemStack stack)
      {
          TileEntity tile = world.getTileEntity(x, y, z);
          if(tile instanceof TileEntityEwiliteChest)
          {
              if(stack.hasDisplayName())
              {
                  ((TileEntityEwiliteChest)tile).setCustomName(stack.getDisplayName(), textureName);
              }
          }
      }
    
    }
    
    ma gui :
    
    package thecraft.mod.common;
    
    import org.lwjgl.opengl.GL11;
    
    import net.minecraft.client.gui.inventory.GuiContainer;
    import net.minecraft.client.resources.I18n;
    import net.minecraft.entity.player.InventoryPlayer;
    import net.minecraft.inventory.Container;
    import net.minecraft.inventory.IInventory;
    import net.minecraft.util.ResourceLocation;
    
    public class GuiEwiliteChest extends GuiContainer
    {
    private static final ResourceLocation textures = new ResourceLocation(ewifaction.MODID, "textures/gui/container/cupboard.png");
      private TileEntityEwiliteChest tileewilite;
      private IInventory playerInv;
    
      public GuiEwiliteChest(TileEntityEwiliteChest tile, InventoryPlayer inventory)
      {
          super(new ContainerEwiliteChest(tile, inventory));
          this.tileewilite = tile;
          this.playerInv = inventory;
          this.allowUserInput = false;
          this.ySize = 170;
      }
    
      @Override
      protected void drawGuiContainerBackgroundLayer(float partialRenderTick, int x, int y)
      {
      String tileName = this.tileewilite.hasCustomInventoryName() ? this.tileewilite.getInventoryName() : I18n.format(this.tileewilite.getInventoryName());
          this.fontRendererObj.drawString(tileName, (this.xSize - this.fontRendererObj.getStringWidth(tileName)) / 2, 6, 0);
          String invName = this.playerInv.hasCustomInventoryName() ? this.playerInv.getInventoryName() : I18n.format(this.playerInv.getInventoryName());
          this.fontRendererObj.drawString(invName, (this.xSize - this.fontRendererObj.getStringWidth(invName)) / 2, this.ySize - 96, 0);
          GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F);
          this.mc.getTextureManager().bindTexture(textures);
          int k = (this.width - this.xSize) / 2;
          int l = (this.height - this.ySize) / 2;
          this.drawTexturedModalRect(k, l, 0, 0, this.xSize, this.ySize);
      }
    }
    
    mon guihandler :
    
    package thecraft.mod.common;
    
    import cpw.mods.fml.common.network.IGuiHandler;
    import net.minecraft.entity.player.EntityPlayer;
    import net.minecraft.tileentity.TileEntity;
    import net.minecraft.world.World;
    import thecraft.mod.client.GuiEwiliteChest;
    
    public class GuihandlerEwifaction implements IGuiHandler
    {
    @Override
    public Object getServerGuiElement(int ID, EntityPlayer player, World world, int x, int y, int z)
    {
    TileEntity tile = world.getTileEntity(x, y, z);
          if(tile instanceof TileEntityEwiliteChest)
          {
              return new ContainerEwiliteChest((TileEntityEwiliteChest)tile, player.inventory);
          }
          return null;
    }
    
    @Override
    public Object getClientGuiElement(int ID, EntityPlayer player, World world, int x, int y, int z)
    {
    TileEntity tile = world.getTileEntity(x, y, z);
          if(tile instanceof TileEntityEwiliteChest)
          {
              return new GuiEwiliteChest((TileEntityEwiliteChest)tile, player.inventory);
          }
          return null;
    }
    
    }
    
    mon title entity :
    package thecraft.mod.common;
    
    import ibxm.Player;
    import net.minecraft.entity.player.EntityPlayer;
    import net.minecraft.inventory.IInventory;
    import net.minecraft.item.ItemStack;
    import net.minecraft.nbt.NBTTagCompound;
    import net.minecraft.nbt.NBTTagList;
    import net.minecraft.tileentity.TileEntity;
    import net.minecraft.world.World;
    import net.minecraftforge.common.util.Constants;
    
    public class TileEntityEwiliteChest extends TileEntity implements IInventory
    {
    private ItemStack[] contents = new ItemStack[27];
      private String customName;
      @Override
       public void readFromNBT(NBTTagCompound compound)
       {
           super.readFromNBT(compound);
           if(compound.hasKey("CustomName", Constants.NBT.TAG_STRING))
           {
               this.customName = compound.getString("CustomName"); // on le lit
           }
    
           NBTTagList nbttaglist = compound.getTagList("Items", Constants.NBT.TAG_COMPOUND);
           this.contents = new ItemStack[this.getSizeInventory()];
           for(int i = 0; i < nbttaglist.tagCount(); ++i)
           {
               NBTTagCompound nbttagcompound1 = nbttaglist.getCompoundTagAt(i);
               int j = nbttagcompound1.getByte("Slot") & 255;
    
               if(j >= 0 && j < this.contents.length)
               {
                   this.contents[j] = ItemStack.loadItemStackFromNBT(nbttagcompound1);
               }
           }
       }
    
       @Override
       public void writeToNBT(NBTTagCompound compound)
       {
           super.writeToNBT(compound);
           if(this.hasCustomInventoryName())
           {
               compound.setString("CustomName", this.customName);
           }
    
           NBTTagList nbttaglist = new NBTTagList();
           for(int i = 0; i < this.contents.length; ++i)
           {
               if(this.contents[ i] != null)
               {
                   NBTTagCompound nbttagcompound1 = new NBTTagCompound();
                   nbttagcompound1.setByte("Slot", (byte)i);
                   this.contents[ i].writeToNBT(nbttagcompound1);
                   nbttaglist.appendTag(nbttagcompound1);
               }
           }
           compound.setTag("Items", nbttaglist); //
       }
    @Override
    public int getSizeInventory()
    {
    return this.contents.length;
    }
    
    @Override
    public ItemStack getStackInSlot(int slotIndex)
    {
    return this.contents[slotIndex];
    }
    
    @Override
    public ItemStack decrStackSize(int slotIndex, int amount)
    {
    if(this.contents[slotIndex] != null)
          {
              ItemStack itemstack;
    
              if(this.contents[slotIndex].stackSize <= amount)
              {
                  itemstack = this.contents[slotIndex];
                  this.contents[slotIndex] = null;
                  this.markDirty();
                  return itemstack;
              }
              else
              {
                  itemstack = this.contents[slotIndex].splitStack(amount);
    
                  if(this.contents[slotIndex].stackSize == 0)
                  {
                      this.contents[slotIndex] = null;
                  }
                  this.markDirty();
                  return itemstack;
              }
          }
          else
          {
              return null;
          }
    }
    
    @Override
    public ItemStack getStackInSlotOnClosing(int slotIndex)
    {
    if(this.contents[slotIndex] != null)
          {
              ItemStack itemstack = this.contents[slotIndex];
              this.contents[slotIndex] = null;
              return itemstack;
          }
          else
          {
              return null;
          }
    }
    
    @Override
    public void setInventorySlotContents(int slotIndex, ItemStack stack)
    {
    this.contents[slotIndex] = stack;
    
          if(stack != null && stack.stackSize > this.getInventoryStackLimit())
          {
              stack.stackSize = this.getInventoryStackLimit();
          }
    
          this.markDirty();
    }
    
    @Override
    public String getInventoryName()
    {
    return this.hasCustomInventoryName() ? this.customName : "tile.cupboard";
    }
    
    @Override
    public boolean hasCustomInventoryName()
    {
    return false;
    }
    
    @Override
    public int getInventoryStackLimit()
    {
    return 64;
    }
    
    @Override
    public boolean isUseableByPlayer(EntityPlayer player)
    {
    return this.worldObj.getTileEntity(this.xCoord, this.yCoord, this.zCoord) != this ? false : player.getDistanceSq((double)this.xCoord + 0.5D, (double)this.yCoord + 0.5D, (double)this.zCoord + 0.5D) <= 64.0D;
    }
    
    @Override
    public void openInventory()
    {
    
    }
    
    @Override
    public void closeInventory()
    {
    
    }
    
    @Override
    public boolean isItemValidForSlot(int slotIndex, ItemStack stack)
    {
    return true;
    }
    
    public void setCustomName(String displayName, String customName)
    {
    this.customName = customName;
    }
    }
    
    mon client proxy :
    
    package thecraft.mod.proxy;
    
    public class clientproxy extends commonproxy
    {
    
    }
    
    mon common proxy :
    package thecraft.mod.proxy;
    
    public class commonproxy
    {
    public void registerRender()
    {
    
    }
    }
    
    je vien de le remarquer mais ma class GuiEwiliteChest ce trouve dans thecraft.mod.client et dans thecraft.mod.common , je pense qu'un des problèmes vien de la pouvez-vous m'indiquez la qu'elle je dois enlever ?
    (celle que je vous ai mise est celle de thecraft.mod.common)
    


  • Déjà dans ta fonction onBlockActivated, remplace java FMLNetworkHandler.openGui(player, ewifaction.instance, 0, world, x, y, z);          return true; par ```java
    if(world.isRemote)
          {
              return true;
          }
          else
          {
              player.openGui(ewifaction.instance, 0, world, x, y, z);
              return true;
          }

    Ca ne marchera pas forcément, mais y'aura quand même plus de chance que si
    
    Pour répondre à ta question, est-ce que ces deux classes sont complètement égaux ? Si oui, même si tu peux enlever n'importe lequel, je te conseille d'enlever celle qui est dans common. En effet, le gui étant uniquement client, tu t'y retrouvera plus facilement


  • connait tu la convention java ? car les nom de class doivent etre en MAJUSCULE
    et puis sil te plait envoi moi ton projet en entier dans un zip en pièce jointe car y a des truc que je ne comprend dedans tes class



  • je ne connais pas vraiment les convention java j'apprends , faire des mods etc m'as toujours intéressé et je m'y essaye.
    J'ai fait la modification proposer et sa ne fonctionne toujours pas , je vous fait un zip de mon fichier pour le qu'elle je met mon chemin d'access quand j'ouvre éclipse :
    http://www.mediafire.com/file/0zlmzein9k6yd90/ewifaction.zip



  • Traduction please : "sworld", "chovel" ????

    http://www.anglaisfacile.com/
    http://www.anglaisfacile.com/
    http://www.anglaisfacile.com/

    Mes yeux saignent…

    J'ai trouvé le problème : dans la class de ton Block apprend ovveride tes fonctions car sinon tu vois pas les erreur car dans la class de ton block la fonction createTileEntity était mal écrite ce qui faisait que ton gui handler ne trouvait pas ton tileentity de ton coffre
    je me suis permis de mettre un peut d'ordre aussi, car STP reprend ton code du début (nom de class et de variables) car cela est vraiment moche quand y  a des noms de variables en minuscule et majuscule ou des nom de class en minuscule, bref j'en passe quoi.
    ET AUSSI l'anglais par pitié tout mais pas ça!

    et quand pont dit envoi le projet c'est juste le dossier src pas le tout !

    Là je te renvoi le dossier src tu le remplace juste par le mien

    src.zip



  • Merci je vais essayer et je vais remettre tous sa en ordre , je vais essayer le nouveau dossier et je signale si sa fonctionne.
    La prochaine fois je ne métrai que le src mais espérons que je n'ai pas a le faire
    il y a une erreur mais je ne parviens pas a localisé d'ou elle viens : 

    encore désolé de vous dérangez.



  • Precise…
     EDIT : c'est un probleme d'eclipse car il enregistre tes packages dans un fichier refait un gradlew eclipse sur ton projets ça corrigé le probleme de memoire



  • merci beaucoup sa fonctionne !


  • Administrateurs

    @'SpyMan':

    connait tu la convention java ? car les nom de class doivent etre en MAJUSCULE

    doivent commencer par une majuscule*

    Par contre ne retournes pas voir les anciens tutoriels du site (1.6.4 et avant), en terme de convention c'est vraiment pas ça x)
    (j'étais vraiment mauvais à l'époque sur ce point).