• Bonjour, j’aurais voulu savoir comment changeons nous le Game menu (quand on appuie sur échap) ? Je débute dans le modding forge et je ne comprends pas beaucoup merci d’avance

  • Administrateurs Rédacteurs Moddeurs confirmés

    Si ta question a un rapport avec la programmation il faut poster dans la section support pour les moddeurs. C’est pourtant écrit clairement u_U.

    Pour changer le game menu il faut utiliser le même principe que pour le menu principale.

    (en passant je déplaces dans la bonne section).


  • Moi j’ai utiliser un de tes programmes déjà à moitier fait donc je suis perdu 😕

  • Administrateurs Rédacteurs Moddeurs confirmés

    Tu parles des sources du mod custom menu ?
    Tu connais un peu le Java ?


  • Oui je parle de custom menu

    J’ai déjà essayer de prendre les cours de openclassroom mais j’arrive pas …

  • Administrateurs Rédacteurs Moddeurs confirmés

    Faut pratique en même temps. La programmation ça s’apprend sur le tas.

    Dans la classe principale du mod, il y a un event de tick. Dedans il y a une condition qui fait que si le menu de minecraft est ouvert, ça ouvre le menu custom.
    Tu as juste à recopier la même condition en dessous, et remplace GuiMainMenu par GuiIngameMenu dans le if, et dans le displayGui mets une autre classe, ce que tu veux. Il y aura une erreur dessus car elle n’existe pas, il te suffira de la créer. Ensuite tu copies / colles tout ce qu’il y a dans GuiIngameMenu, tu aura juste a changer le nom de la classe et ajouter les importation qui manque (ctrl + shift + o) et voila.


  • Parles tu de cet event tick la ? : ```java
    /**

    • Renders the skybox in the main menu
      */
      private void renderSkybox(int x, int y, float partialTick)
      {
      this.mc.getFramebuffer().unbindFramebuffer();
      GL11.glViewport(0, 0, 256, 256);
      this.drawPanorama(x, y, partialTick);
      this.rotateAndBlurSkybox(partialTick);
      this.rotateAndBlurSkybox(partialTick);
      this.rotateAndBlurSkybox(partialTick);
      this.rotateAndBlurSkybox(partialTick);
      this.rotateAndBlurSkybox(partialTick);
      this.rotateAndBlurSkybox(partialTick);
      this.rotateAndBlurSkybox(partialTick);
      this.mc.getFramebuffer().bindFramebuffer(true);
      GL11.glViewport(0, 0, this.mc.displayWidth, this.mc.displayHeight);
      Tessellator tessellator = Tessellator.instance;
      tessellator.startDrawingQuads();
      float f1 = this.width > this.height ? 120.0F / (float)this.width : 120.0F / (float)this.height;
      float f2 = (float)this.height * f1 / 256.0F;
      float f3 = (float)this.width * f1 / 256.0F;
      tessellator.setColorRGBA_F(1.0F, 1.0F, 1.0F, 1.0F);
      int k = this.width;
      int l = this.height;
      tessellator.addVertexWithUV(0.0D, (double)l, (double)this.zLevel, (double)(0.5F - f2), (double)(0.5F + f3));
      tessellator.addVertexWithUV((double)k, (double)l, (double)this.zLevel, (double)(0.5F - f2), (double)(0.5F - f3));
      tessellator.addVertexWithUV((double)k, 0.0D, (double)this.zLevel, (double)(0.5F + f2), (double)(0.5F - f3));
      tessellator.addVertexWithUV(0.0D, 0.0D, (double)this.zLevel, (double)(0.5F + f2), (double)(0.5F + f3));
      tessellator.draw();
      }

    /**

    • Draws the screen and all the components in it.
      */
      public void drawScreen(int x, int y, float partialTick)
      {
      GL11.glDisable(GL11.GL_ALPHA_TEST);
      this.renderSkybox(x, y, partialTick);
      GL11.glEnable(GL11.GL_ALPHA_TEST);
      Tessellator tessellator = Tessellator.instance;
      short short1 = 274;
      int k = this.width / 2 - short1 / 2;
      byte b0 = 30;
      this.drawGradientRect(0, 0, this.width, this.height, -2130706433, 16777215);
      this.drawGradientRect(0, 0, this.width, this.height, 0, Integer.MIN_VALUE);
      this.mc.getTextureManager().bindTexture(minecraftTitleTextures);
      GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F);

    if((double)this.updateCounter < 1.0E-4D)
    {
    this.drawTexturedModalRect(k + 0, b0 + 0, 0, 0, 99, 44);
    this.drawTexturedModalRect(k + 99, b0 + 0, 129, 0, 27, 44);
    this.drawTexturedModalRect(k + 99 + 26, b0 + 0, 126, 0, 3, 44);
    this.drawTexturedModalRect(k + 99 + 26 + 3, b0 + 0, 99, 0, 26, 44);
    this.drawTexturedModalRect(k + 155, b0 + 0, 0, 45, 155, 44);
    }
    else
    {
    this.drawTexturedModalRect(k + 0, b0 + 0, 0, 0, 155, 44);
    this.drawTexturedModalRect(k + 155, b0 + 0, 0, 45, 155, 44);
    }


  • @‘Zedokf_DrM’:

    Parles tu de cet event tick la ? :

       /**
        * Renders the skybox in the main menu
        */
       private void renderSkybox(int x, int y, float partialTick)
       {
           this.mc.getFramebuffer().unbindFramebuffer();
           GL11.glViewport(0, 0, 256, 256);
           this.drawPanorama(x, y, partialTick);
           this.rotateAndBlurSkybox(partialTick);
           this.rotateAndBlurSkybox(partialTick);
           this.rotateAndBlurSkybox(partialTick);
           this.rotateAndBlurSkybox(partialTick);
           this.rotateAndBlurSkybox(partialTick);
           this.rotateAndBlurSkybox(partialTick);
           this.rotateAndBlurSkybox(partialTick);
           this.mc.getFramebuffer().bindFramebuffer(true);
           GL11.glViewport(0, 0, this.mc.displayWidth, this.mc.displayHeight);
           Tessellator tessellator = Tessellator.instance;
           tessellator.startDrawingQuads();
           float f1 = this.width > this.height ? 120.0F / (float)this.width : 120.0F / (float)this.height;
           float f2 = (float)this.height * f1 / 256.0F;
           float f3 = (float)this.width * f1 / 256.0F;
           tessellator.setColorRGBA_F(1.0F, 1.0F, 1.0F, 1.0F);
           int k = this.width;
           int l = this.height;
           tessellator.addVertexWithUV(0.0D, (double)l, (double)this.zLevel, (double)(0.5F - f2), (double)(0.5F + f3));
           tessellator.addVertexWithUV((double)k, (double)l, (double)this.zLevel, (double)(0.5F - f2), (double)(0.5F - f3));
           tessellator.addVertexWithUV((double)k, 0.0D, (double)this.zLevel, (double)(0.5F + f2), (double)(0.5F - f3));
           tessellator.addVertexWithUV(0.0D, 0.0D, (double)this.zLevel, (double)(0.5F + f2), (double)(0.5F + f3));
           tessellator.draw();
       }
    
       /**
        * Draws the screen and all the components in it.
        */
       public void drawScreen(int x, int y, float partialTick)
       {
           GL11.glDisable(GL11.GL_ALPHA_TEST);
           this.renderSkybox(x, y, partialTick);
           GL11.glEnable(GL11.GL_ALPHA_TEST);
           Tessellator tessellator = Tessellator.instance;
           short short1 = 274;
           int k = this.width / 2 - short1 / 2;
           byte b0 = 30;
           this.drawGradientRect(0, 0, this.width, this.height, -2130706433, 16777215);
           this.drawGradientRect(0, 0, this.width, this.height, 0, Integer.MIN_VALUE);
           this.mc.getTextureManager().bindTexture(minecraftTitleTextures);
           GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F);
    
           if((double)this.updateCounter < 1.0E-4D)
           {
               this.drawTexturedModalRect(k + 0, b0 + 0, 0, 0, 99, 44);
               this.drawTexturedModalRect(k + 99, b0 + 0, 129, 0, 27, 44);
               this.drawTexturedModalRect(k + 99 + 26, b0 + 0, 126, 0, 3, 44);
               this.drawTexturedModalRect(k + 99 + 26 + 3, b0 + 0, 99, 0, 26, 44);
               this.drawTexturedModalRect(k + 155, b0 + 0, 0, 45, 155, 44);
           }
           else
           {
               this.drawTexturedModalRect(k + 0, b0 + 0, 0, 0, 155, 44);
               this.drawTexturedModalRect(k + 155, b0 + 0, 0, 45, 155, 44);
           }
    

    C’est pas un event tick çà. Il faut utiliser un TickEvent (fml.gameevent il me semble). Ou tu peux utiliser le InitGuiEvent.

  • Administrateurs Rédacteurs Moddeurs confirmés

    Les événements peuvent être remarqué car ils ont un @EventHandler au dessus. Donc ce que tu as envoyé n’est pas un event.


  • Je cherche avec ctrl + f et il n’y a pas de TickEvent ou de @Event ^^ ```java
    package fr.minecraftforgefrance.client.custommenu;

    import java.io.BufferedReader;
    import java.io.IOException;
    import java.io.InputStreamReader;
    import java.lang.reflect.InvocationTargetException;
    import java.net.URI;
    import java.net.URISyntaxException;
    import java.util.ArrayList;
    import java.util.Calendar;
    import java.util.Date;
    import java.util.List;
    import java.util.Random;

    import net.minecraft.client.Minecraft;
    import net.minecraft.client.gui.GuiButton;
    import net.minecraft.client.gui.GuiButtonLanguage;
    import net.minecraft.client.gui.GuiConfirmOpenLink;
    import net.minecraft.client.gui.GuiLanguage;
    import net.minecraft.client.gui.GuiMultiplayer;
    import net.minecraft.client.gui.GuiOptions;
    import net.minecraft.client.gui.GuiScreen;
    import net.minecraft.client.gui.GuiSelectWorld;
    import net.minecraft.client.gui.GuiYesNo;
    import net.minecraft.client.gui.GuiYesNoCallback;
    import net.minecraft.client.renderer.OpenGlHelper;
    import net.minecraft.client.renderer.Tessellator;
    import net.minecraft.client.renderer.texture.DynamicTexture;
    import net.minecraft.client.resources.I18n;
    import net.minecraft.util.EnumChatFormatting;
    import net.minecraft.util.MathHelper;
    import net.minecraft.util.ResourceLocation;
    import net.minecraft.world.demo.DemoWorldServer;
    import net.minecraft.world.storage.ISaveFormat;
    import net.minecraft.world.storage.WorldInfo;
    import net.minecraftforge.client.ForgeHooksClient;

    import org.apache.commons.io.Charsets;
    import org.apache.logging.log4j.LogManager;
    import org.apache.logging.log4j.Logger;
    import org.lwjgl.opengl.GL11;
    import org.lwjgl.opengl.GLContext;
    import org.lwjgl.util.glu.Project;

    import com.google.common.base.Strings;
    import com.google.common.collect.Lists;

    import cpw.mods.fml.client.FMLClientHandler;
    import cpw.mods.fml.client.GuiModList;
    import cpw.mods.fml.common.FMLCommonHandler;
    import cpw.mods.fml.relauncher.Side;
    import cpw.mods.fml.relauncher.SideOnly;

    @SideOnly(Side.CLIENT)
    public class GuiCustomMainMenu extends GuiScreen implements GuiYesNoCallback
    {
    private static final Logger logger = LogManager.getLogger();
    /** The RNG used by the Main Menu Screen. /
    private static final Random rand = new Random();
    /
    * Counts the number of screen updates. /
    private float updateCounter;
    /
    * The splash message. /
    private String splashText;
    private GuiButton buttonResetDemo;
    /
    * Timer used to rotate the panorama, increases every tick. /
    private int panoramaTimer;
    /
    *

    • Texture allocated for the current viewport of the main menu’s panorama background.
      /
      private DynamicTexture viewportTexture;
      private final Object field_104025_t = new Object();
      private String field_92025_p;
      private String field_146972_A;
      private String field_104024_v;
      private static final ResourceLocation splashTexts = new ResourceLocation(“texts/splashes.txt”);
      private static final ResourceLocation minecraftTitleTextures = new ResourceLocation(“slidefight”,“textures/gui/slidefight.png”);
      /
      * An array of all the paths to the panorama pictures. */
      private static final ResourceLocation[] titlePanoramaPaths = new ResourceLocation[] {new ResourceLocation(“slidefight”,“textures/gui/panorama.png”), new ResourceLocation(“slidefight”,“textures/gui/panorama.png”), new ResourceLocation(“slidefight”,“textures/gui/panorama.png”), new ResourceLocation(“slidefight”,“textures/gui/panorama.png”), new ResourceLocation(“slidefight”,“textures/gui/panorama.png”), new ResourceLocation(“slidefight”,“textures/gui/panorama.png”)};
      public static final String field_96138_a = “Please click " + EnumChatFormatting.UNDERLINE + “here” + EnumChatFormatting.RESET + " for more information.”;
      private int field_92024_r;
      private int field_92023_s;
      private int field_92022_t;
      private int field_92021_u;
      private int field_92020_v;
      private int field_92019_w;
      private ResourceLocation field_110351_G;
      private static final String __OBFID = “CL_00001154”;

    public GuiCustomMainMenu()
    {
    this.field_146972_A = field_96138_a;
    this.splashText = “missingno”;
    BufferedReader bufferedreader = null;

    try
    {
    ArrayList arraylist = new ArrayList();
    bufferedreader = new BufferedReader(new InputStreamReader(Minecraft.getMinecraft().getResourceManager().getResource(splashTexts).getInputStream(), Charsets.UTF_8));
    String s;

    while((s = bufferedreader.readLine()) != null)
    {
    s = s.trim();

    if(!s.isEmpty())
    {
    arraylist.add(s);
    }
    }

    if(!arraylist.isEmpty())
    {
    do
    {
    this.splashText = (String)arraylist.get(rand.nextInt(arraylist.size()));
    }
    while(this.splashText.hashCode() == 125780783);
    }
    }
    catch(IOException ioexception1)
    {
    ;
    }
    finally
    {
    if(bufferedreader != null)
    {
    try
    {
    bufferedreader.close();
    }
    catch(IOException ioexception)
    {
    ;
    }
    }
    }

    this.updateCounter = rand.nextFloat();
    this.field_92025_p = “”;

    if(!GLContext.getCapabilities().OpenGL20 && !OpenGlHelper.func_153193_b())
    {
    this.field_92025_p = I18n.format(“title.oldgl1”, new Object[0]);
    this.field_146972_A = I18n.format(“title.oldgl2”, new Object[0]);
    this.field_104024_v = “https://help.mojang.com/customer/portal/articles/325948?ref=game”;
    }
    }

    /**

    • Called from the main game loop to update the screen.
      */
      public void updateScreen()
      {
      ++this.panoramaTimer;
      }

    /**

    • Returns true if this GUI should pause the game when it is displayed in single-player
      */
      public boolean doesGuiPauseGame()
      {
      return false;
      }

    /**

    • Fired when a key is typed. This is the equivalent of KeyListener.keyTyped(KeyEvent e).
      */
      protected void keyTyped(char p_73869_1_, int p_73869_2_)
      {}

    /**

    • Adds the buttons (and other controls) to the screen in question.
      */
      public void initGui()
      {
      this.viewportTexture = new DynamicTexture(256, 256);
      this.field_110351_G = this.mc.getTextureManager().getDynamicTextureLocation(“background”, this.viewportTexture);
      Calendar calendar = Calendar.getInstance();
      calendar.setTime(new Date());

    if(calendar.get(2) + 1 == 11 && calendar.get(5) == 9)
    {
    this.splashText = “Happy birthday, ez!”;
    }
    else if(calendar.get(2) + 1 == 6 && calendar.get(5) == 1)
    {
    this.splashText = “Happy birthday, Notch!”;
    }
    else if(calendar.get(2) + 1 == 12 && calendar.get(5) == 24)
    {
    this.splashText = “Merry X-mas!”;
    }
    else if(calendar.get(2) + 1 == 1 && calendar.get(5) == 1)
    {
    this.splashText = “Happy new year!”;
    }
    else if(calendar.get(2) + 1 == 10 && calendar.get(5) == 31)
    {
    this.splashText = “OOoooOOOoooo! Spooky!”;
    }
    else if(calendar.get(2) + 1 == 7 && calendar.get(5) == 6)
    {
    this.splashText = “Joyeux anniversaire Zedokf_DrM !”;
    }

    boolean flag = true;
    int i = this.height / 4 + 48;

    if(this.mc.isDemo())
    {
    this.addDemoButtons(i, 24);
    }
    else
    {
    this.addSingleplayerMultiplayerButtons(i, 24);
    }

    this.buttonList.add(new GuiButton(0, this.width / 2 - 100, i + 72 + 12, 98, 20, I18n.format(“Options”, new Object[0])));
    this.buttonList.add(new GuiButton(4, this.width / 2 + 2, i + 72 + 12, 98, 20, I18n.format(“Quitter”, new Object[0])));
    Object object = this.field_104025_t;

    synchronized(this.field_104025_t)
    {
    this.field_92023_s = this.fontRendererObj.getStringWidth(this.field_92025_p);
    this.field_92024_r = this.fontRendererObj.getStringWidth(this.field_146972_A);
    int j = Math.max(this.field_92023_s, this.field_92024_r);
    this.field_92022_t = (this.width - j) / 2;
    this.field_92021_u = ((GuiButton)this.buttonList.get(0)).yPosition - 24;
    this.field_92020_v = this.field_92022_t + j;
    this.field_92019_w = this.field_92021_u + 24;
    }
    }

    /**

    • Adds Singleplayer and Multiplayer buttons on Main Menu for players who have bought the game.
      */
      private void addSingleplayerMultiplayerButtons(int x, int y)
      {
      this.buttonList.add(new GuiButton(1, this.width / 2 - 100, x, 98, 20, I18n.format(“Site”)));
      this.buttonList.add(new GuiButton(2, this.width / 2 + 2, x + 0, 98, 20, I18n.format(“Forum”)));
      this.buttonList.add(new GuiButton(20, this.width / 2 - 100, x + y * 1, “Jouer sur SlideFight”));
      GuiButton webSiteButton = new GuiButton(21, this.width / 2 - 100, x + y * 2, “Vote”);
      GuiButton fmlModButton = new GuiButton(6, this.width / 2 - 100, x + y * 2, “TS3”);
      fmlModButton.xPosition = this.width / 2 + 2;
      webSiteButton.width = 98;
      fmlModButton.width = 98;
      this.buttonList.add(webSiteButton);
      this.buttonList.add(fmlModButton);
      }

    /**

    • Adds Demo buttons on Main Menu for players who are playing Demo.
      */
      private void addDemoButtons(int x, int y)
      {
      this.buttonList.add(new GuiButton(11, this.width / 2 - 100, x, I18n.format(“menu.playdemo”, new Object[0])));
      this.buttonList.add(this.buttonResetDemo = new GuiButton(12, this.width / 2 - 100, x + y * 1, I18n.format(“menu.resetdemo”, new Object[0])));
      ISaveFormat isaveformat = this.mc.getSaveLoader();
      WorldInfo worldinfo = isaveformat.getWorldInfo(“Demo_World”);

    if(worldinfo == null)
    {
    this.buttonResetDemo.enabled = false;
    }
    }

    protected void actionPerformed(GuiButton button)
    {
    if(button.id == 0)
    {
    this.mc.displayGuiScreen(new GuiOptions(this, this.mc.gameSettings));
    }

    if(button.id == 5)
    {
    this.mc.displayGuiScreen(new GuiLanguage(this, this.mc.gameSettings, this.mc.getLanguageManager()));
    }

    if(button.id == 1)
    {
    try
    {
    Class oclass = Class.forName(“java.awt.Desktop”);
    Object object = oclass.getMethod(“getDesktop”, new Class[0]).invoke((Object)null, new Object[0]);
    oclass.getMethod(“browse”, new Class[] {URI.class}).invoke(object, new Object[] {new URI(“http://www.slidefight.fr/”)});
    }
    catch(Throwable throwable)
    {
    logger.error(“Couldn’t open link”, throwable);
    }
    }

    if(button.id == 2)
    {
    try
    {
    Class oclass = Class.forName(“java.awt.Desktop”);
    Object object = oclass.getMethod(“getDesktop”, new Class[0]).invoke((Object)null, new Object[0]);
    oclass.getMethod(“browse”, new Class[] {URI.class}).invoke(object, new Object[] {new URI(“http://www.slidefight.fr/forum.php”)});
    }
    catch(Throwable throwable)
    {
    logger.error(“Couldn’t open link”, throwable);
    }
    }

    if(button.id == 4)
    {
    this.mc.shutdown();
    }

    if(button.id == 6)
    {
    try
    {
    Class oclass = Class.forName(“java.awt.Desktop”);
    Object object = oclass.getMethod(“getDesktop”, new Class[0]).invoke((Object)null, new Object[0]);
    oclass.getMethod(“browse”, new Class[] {URI.class}).invoke(object, new Object[] {new URI(“ts3server://91.121.253.196?port=”)});
    }
    catch(Throwable throwable)
    {
    logger.error(“Couldn’t open link”, throwable);
    }
    }

    if(button.id == 11)
    {
    this.mc.launchIntegratedServer(“Demo_World”, “Demo_World”, DemoWorldServer.demoWorldSettings);
    }

    if(button.id == 12)
    {
    ISaveFormat isaveformat = this.mc.getSaveLoader();
    WorldInfo worldinfo = isaveformat.getWorldInfo(“Demo_World”);

    if(worldinfo != null)
    {
    GuiYesNo guiyesno = GuiSelectWorld.func_152129_a(this, worldinfo.getWorldName(), 12);
    this.mc.displayGuiScreen(guiyesno);
    }
    }

    if(button.id == 20)
    {
    // TODO pour la connexion au serveur
    FMLClientHandler.instance().connectToServerAtStartup(“62.210.45.98”, 10184); // ip, port
    }

    if(button.id == 21)
    {
    try
    {
    Class oclass = Class.forName(“java.awt.Desktop”);
    Object object = oclass.getMethod(“getDesktop”, new Class[0]).invoke((Object)null, new Object[0]);
    oclass.getMethod(“browse”, new Class[] {URI.class}).invoke(object, new Object[] {new URI(“http://www.slidefight.fr/vote.php”)});
    }
    catch(Throwable throwable)
    {
    logger.error(“Couldn’t open link”, throwable);
    }
    }
    }

    public void confirmClicked(boolean p_73878_1_, int id)
    {
    if(p_73878_1_ && id == 12)
    {
    ISaveFormat isaveformat = this.mc.getSaveLoader();
    isaveformat.flushCache();
    isaveformat.deleteWorldDirectory(“Demo_World”);
    this.mc.displayGuiScreen(this);
    }
    else if(id == 13)
    {
    if(p_73878_1_)
    {
    try
    {
    Class oclass = Class.forName(“java.awt.Desktop”);
    Object object = oclass.getMethod(“getDesktop”, new Class[0]).invoke((Object)null, new Object[0]);
    oclass.getMethod(“browse”, new Class[] {URI.class}).invoke(object, new Object[] {new URI(this.field_104024_v)});
    }
    catch(Throwable throwable)
    {
    logger.error(“Couldn’t open link”, throwable);
    }
    }

    this.mc.displayGuiScreen(this);
    }
    }

    /**

    • Draws the main menu panorama
      */
      private void drawPanorama(int x, int y, float partialTick)
      {
      Tessellator tessellator = Tessellator.instance;
      GL11.glMatrixMode(GL11.GL_PROJECTION);
      GL11.glPushMatrix();
      GL11.glLoadIdentity();
      Project.gluPerspective(120.0F, 1.0F, 0.05F, 10.0F);
      GL11.glMatrixMode(GL11.GL_MODELVIEW);
      GL11.glPushMatrix();
      GL11.glLoadIdentity();
      GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F);
      GL11.glRotatef(180.0F, 1.0F, 0.0F, 0.0F);
      GL11.glRotatef(90.0F, 0.0F, 0.0F, 1.0F);
      GL11.glEnable(GL11.GL_BLEND);
      GL11.glDisable(GL11.GL_ALPHA_TEST);
      GL11.glDisable(GL11.GL_CULL_FACE);
      GL11.glDepthMask(false);
      OpenGlHelper.glBlendFunc(770, 771, 1, 0);
      byte b0 = 8;

    for(int k = 0; k < b0 * b0; ++k)
    {
    GL11.glPushMatrix();
    float f1 = ((float)(k % b0) / (float)b0 - 0.5F) / 64.0F;
    float f2 = ((float)(k / b0) / (float)b0 - 0.5F) / 64.0F;
    float f3 = 0.0F;
    GL11.glTranslatef(f1, f2, f3);
    GL11.glRotatef(MathHelper.sin(((float)this.panoramaTimer + partialTick) / 400.0F) * 25.0F + 20.0F, 1.0F, 0.0F, 0.0F);
    GL11.glRotatef(-((float)this.panoramaTimer + partialTick) * 0.1F, 0.0F, 1.0F, 0.0F);

    for(int l = 0; l < 6; ++l)
    {
    GL11.glPushMatrix();

    if(l == 1)
    {
    GL11.glRotatef(90.0F, 0.0F, 1.0F, 0.0F);
    }

    if(l == 2)
    {
    GL11.glRotatef(180.0F, 0.0F, 1.0F, 0.0F);
    }

    if(l == 3)
    {
    GL11.glRotatef(-90.0F, 0.0F, 1.0F, 0.0F);
    }

    if(l == 4)
    {
    GL11.glRotatef(90.0F, 1.0F, 0.0F, 0.0F);
    }

    if(l == 5)
    {
    GL11.glRotatef(-90.0F, 1.0F, 0.0F, 0.0F);
    }

    this.mc.getTextureManager().bindTexture(titlePanoramaPaths[l]);
    tessellator.startDrawingQuads();
    tessellator.setColorRGBA_I(16777215, 255 / (k + 1));
    float f4 = 0.0F;
    tessellator.addVertexWithUV(-1.0D, -1.0D, 1.0D, (double)(0.0F + f4), (double)(0.0F + f4));
    tessellator.addVertexWithUV(1.0D, -1.0D, 1.0D, (double)(1.0F - f4), (double)(0.0F + f4));
    tessellator.addVertexWithUV(1.0D, 1.0D, 1.0D, (double)(1.0F - f4), (double)(1.0F - f4));
    tessellator.addVertexWithUV(-1.0D, 1.0D, 1.0D, (double)(0.0F + f4), (double)(1.0F - f4));
    tessellator.draw();
    GL11.glPopMatrix();
    }

    GL11.glPopMatrix();
    GL11.glColorMask(true, true, true, false);
    }

    tessellator.setTranslation(0.0D, 0.0D, 0.0D);
    GL11.glColorMask(true, true, true, true);
    GL11.glMatrixMode(GL11.GL_PROJECTION);
    GL11.glPopMatrix();
    GL11.glMatrixMode(GL11.GL_MODELVIEW);
    GL11.glPopMatrix();
    GL11.glDepthMask(true);
    GL11.glEnable(GL11.GL_CULL_FACE);
    GL11.glEnable(GL11.GL_DEPTH_TEST);
    }

    /**

    • Rotate and blurs the skybox view in the main menu
      */
      private void rotateAndBlurSkybox(float partialTick)
      {
      this.mc.getTextureManager().bindTexture(this.field_110351_G);
      GL11.glTexParameteri(GL11.GL_TEXTURE_2D, GL11.GL_TEXTURE_MIN_FILTER, GL11.GL_LINEAR);
      GL11.glTexParameteri(GL11.GL_TEXTURE_2D, GL11.GL_TEXTURE_MAG_FILTER, GL11.GL_LINEAR);
      GL11.glCopyTexSubImage2D(GL11.GL_TEXTURE_2D, 0, 0, 0, 0, 0, 256, 256);
      GL11.glEnable(GL11.GL_BLEND);
      OpenGlHelper.glBlendFunc(770, 771, 1, 0);
      GL11.glColorMask(true, true, true, false);
      Tessellator tessellator = Tessellator.instance;
      tessellator.startDrawingQuads();
      GL11.glDisable(GL11.GL_ALPHA_TEST);
      byte b0 = 3;

    for(int i = 0; i < b0; ++i)
    {
    tessellator.setColorRGBA_F(1.0F, 1.0F, 1.0F, 1.0F / (float)(i + 1));
    int j = this.width;
    int k = this.height;
    float f1 = (float)(i - b0 / 2) / 256.0F;
    tessellator.addVertexWithUV((double)j, (double)k, (double)this.zLevel, (double)(0.0F + f1), 1.0D);
    tessellator.addVertexWithUV((double)j, 0.0D, (double)this.zLevel, (double)(1.0F + f1), 1.0D);
    tessellator.addVertexWithUV(0.0D, 0.0D, (double)this.zLevel, (double)(1.0F + f1), 0.0D);
    tessellator.addVertexWithUV(0.0D, (double)k, (double)this.zLevel, (double)(0.0F + f1), 0.0D);
    }

    tessellator.draw();
    GL11.glEnable(GL11.GL_ALPHA_TEST);
    GL11.glColorMask(true, true, true, true);
    }

    /**

    • Renders the skybox in the main menu
      */
      private void renderSkybox(int x, int y, float partialTick)
      {
      this.mc.getFramebuffer().unbindFramebuffer();
      GL11.glViewport(0, 0, 256, 256);
      this.drawPanorama(x, y, partialTick);
      this.rotateAndBlurSkybox(partialTick);
      this.rotateAndBlurSkybox(partialTick);
      this.rotateAndBlurSkybox(partialTick);
      this.rotateAndBlurSkybox(partialTick);
      this.rotateAndBlurSkybox(partialTick);
      this.rotateAndBlurSkybox(partialTick);
      this.rotateAndBlurSkybox(partialTick);
      this.mc.getFramebuffer().bindFramebuffer(true);
      GL11.glViewport(0, 0, this.mc.displayWidth, this.mc.displayHeight);
      Tessellator tessellator = Tessellator.instance;
      tessellator.startDrawingQuads();
      float f1 = this.width > this.height ? 120.0F / (float)this.width : 120.0F / (float)this.height;
      float f2 = (float)this.height * f1 / 256.0F;
      float f3 = (float)this.width * f1 / 256.0F;
      tessellator.setColorRGBA_F(1.0F, 1.0F, 1.0F, 1.0F);
      int k = this.width;
      int l = this.height;
      tessellator.addVertexWithUV(0.0D, (double)l, (double)this.zLevel, (double)(0.5F - f2), (double)(0.5F + f3));
      tessellator.addVertexWithUV((double)k, (double)l, (double)this.zLevel, (double)(0.5F - f2), (double)(0.5F - f3));
      tessellator.addVertexWithUV((double)k, 0.0D, (double)this.zLevel, (double)(0.5F + f2), (double)(0.5F - f3));
      tessellator.addVertexWithUV(0.0D, 0.0D, (double)this.zLevel, (double)(0.5F + f2), (double)(0.5F + f3));
      tessellator.draw();
      }

    /**

    • Draws the screen and all the components in it.
      */
      public void drawScreen(int x, int y, float partialTick)
      {
      GL11.glDisable(GL11.GL_ALPHA_TEST);
      this.renderSkybox(x, y, partialTick);
      GL11.glEnable(GL11.GL_ALPHA_TEST);
      Tessellator tessellator = Tessellator.instance;
      short short1 = 274;
      int k = this.width / 2 - short1 / 2;
      byte b0 = 30;
      this.drawGradientRect(0, 0, this.width, this.height, -2130706433, 16777215);
      this.drawGradientRect(0, 0, this.width, this.height, 0, Integer.MIN_VALUE);
      this.mc.getTextureManager().bindTexture(minecraftTitleTextures);
      GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F);

    if((double)this.updateCounter < 1.0E-4D)
    {
    this.drawTexturedModalRect(k + 0, b0 + 0, 0, 0, 99, 44);
    this.drawTexturedModalRect(k + 99, b0 + 0, 129, 0, 27, 44);
    this.drawTexturedModalRect(k + 99 + 26, b0 + 0, 126, 0, 3, 44);
    this.drawTexturedModalRect(k + 99 + 26 + 3, b0 + 0, 99, 0, 26, 44);
    this.drawTexturedModalRect(k + 155, b0 + 0, 0, 45, 155, 44);
    }
    else
    {
    this.drawTexturedModalRect(k + 0, b0 + 0, 0, 0, 155, 44);
    this.drawTexturedModalRect(k + 155, b0 + 0, 0, 45, 155, 44);
    }

    String s1 = “Menu V2.0”;
    this.drawString(this.fontRendererObj, s1, this.width - this.fontRendererObj.getStringWidth(s1) - 2, this.height - 10, -1);

    if(this.field_92025_p != null && this.field_92025_p.length() > 0)
    {
    drawRect(this.field_92022_t - 2, this.field_92021_u - 2, this.field_92020_v + 2, this.field_92019_w - 1, 1428160512);
    this.drawString(this.fontRendererObj, this.field_92025_p, this.field_92022_t, this.field_92021_u, -1);
    this.drawString(this.fontRendererObj, this.field_146972_A, (this.width - this.field_92024_r) / 2, ((GuiButton)this.buttonList.get(0)).yPosition - 12, -1);
    }

    super.drawScreen(x, y, partialTick);
    }

    /**

    • Called when the mouse is clicked.
      */
      protected void mouseClicked(int p_73864_1_, int p_73864_2_, int p_73864_3_)
      {
      super.mouseClicked(p_73864_1_, p_73864_2_, p_73864_3_);
      Object object = this.field_104025_t;

    synchronized(this.field_104025_t)
    {
    if(this.field_92025_p.length() > 0 && p_73864_1_ >= this.field_92022_t && p_73864_1_ <= this.field_92020_v && p_73864_2_ >= this.field_92021_u && p_73864_2_ <= this.field_92019_w)
    {
    GuiConfirmOpenLink guiconfirmopenlink = new GuiConfirmOpenLink(this, this.field_104024_v, 13, true);
    guiconfirmopenlink.func_146358_g();
    this.mc.displayGuiScreen(guiconfirmopenlink);
    }
    }
    }
    }

  • Administrateurs Rédacteurs Moddeurs confirmés

    @‘robin4002’:

    Dans la classe principale du mod

    Classe principale, pas classe du menu. La classe principale c’est celle ou il y a @Mod(modid= …


  • Pour remplacer GuiGameMenu je fais ce code la : ```java
    package fr.minecraftforgefrance.client.custommenu;

    import net.minecraft.client.Minecraft;
    import net.minecraft.client.gui.GuiMainMenu;
    import cpw.mods.fml.client.FMLClientHandler;
    import cpw.mods.fml.common.FMLCommonHandler;
    import cpw.mods.fml.common.Mod;
    import cpw.mods.fml.common.Mod.EventHandler;
    import cpw.mods.fml.common.event.FMLInitializationEvent;
    import cpw.mods.fml.common.eventhandler.SubscribeEvent;
    import cpw.mods.fml.common.gameevent.TickEvent;
    import cpw.mods.fml.relauncher.Side;
    import cpw.mods.fml.relauncher.SideOnly;

    @Mod(modid = “custommenu”, name = “SlideFight Menu”, version = “2.0”)
    public class ModCustomMenu
    {
    @EventHandler
    public void init(FMLInitializationEvent event)
    {
    if(event.getSide().isClient())
    {
    FMLCommonHandler.instance().bus().register(this);
    }
    }

    @SubscribeEvent
    @SideOnly(Side.CLIENT)
    public void onTick(TickEvent.ClientTickEvent event)
    {
    Minecraft mc = FMLClientHandler.instance().getClient();
    if(mc.currentScreen != null && mc.currentScreen.getClass().equals(GuiMainMenu.class))
    {
    mc.displayGuiScreen(new GuiCustomMainMenu());
    }
    }
    @SubscribeEvent
    @SideOnly(Side.CLIENT)
    public void onTick(TickEvent.ClientTickEvent event)
    {
    Minecraft mc = FMLClientHandler.instance().getClient();
    if(mc.currentScreen != null && mc.currentScreen.getClass().equals(GuiIngameMenu.class))
    {
    mc.displayGuiScreen(new GuiCustomMainMenu());
    }
    }

    }


  • @‘Zedokf_DrM’:

    Pour remplacer GuiGameMenu je fais ce code la  :

    package fr.minecraftforgefrance.client.custommenu;
    
    import net.minecraft.client.Minecraft;
    import net.minecraft.client.gui.GuiMainMenu;
    import cpw.mods.fml.client.FMLClientHandler;
    import cpw.mods.fml.common.FMLCommonHandler;
    import cpw.mods.fml.common.Mod;
    import cpw.mods.fml.common.Mod.EventHandler;
    import cpw.mods.fml.common.event.FMLInitializationEvent;
    import cpw.mods.fml.common.eventhandler.SubscribeEvent;
    import cpw.mods.fml.common.gameevent.TickEvent;
    import cpw.mods.fml.relauncher.Side;
    import cpw.mods.fml.relauncher.SideOnly;
    
    @Mod(modid = "custommenu", name = "SlideFight Menu", version = "2.0")
    public class ModCustomMenu
    {
       @EventHandler
       public void init(FMLInitializationEvent event)
       {
           if(event.getSide().isClient())
           {
               FMLCommonHandler.instance().bus().register(this);
           }
       }
    
       @SubscribeEvent
       @SideOnly(Side.CLIENT)
       public void onTick(TickEvent.ClientTickEvent event)
       {
           Minecraft mc = FMLClientHandler.instance().getClient();
           if(mc.currentScreen != null && mc.currentScreen.getClass().equals(GuiMainMenu.class))
           {
               mc.displayGuiScreen(new GuiCustomMainMenu());
           }
       }
       @SubscribeEvent
       @SideOnly(Side.CLIENT)
       public void onTick(TickEvent.ClientTickEvent event)
       {
           Minecraft mc = FMLClientHandler.instance().getClient();
           if(mc.currentScreen != null && mc.currentScreen.getClass().equals(GuiIngameMenu.class))
           {
               mc.displayGuiScreen(new GuiCustomMainMenu());
           }
       }
    
    }
    

    Le code est bon, sauf que tu as 2 fois la même fonction.

  • Administrateurs Rédacteurs Moddeurs confirmés

    J’ai dit reprendre la condition. Pas la fonction. Donc ça devrait être comme ça :

    package fr.minecraftforgefrance.client.custommenu;
    
    import net.minecraft.client.Minecraft;
    import net.minecraft.client.gui.GuiMainMenu;
    import cpw.mods.fml.client.FMLClientHandler;
    import cpw.mods.fml.common.FMLCommonHandler;
    import cpw.mods.fml.common.Mod;
    import cpw.mods.fml.common.Mod.EventHandler;
    import cpw.mods.fml.common.event.FMLInitializationEvent;
    import cpw.mods.fml.common.eventhandler.SubscribeEvent;
    import cpw.mods.fml.common.gameevent.TickEvent;
    import cpw.mods.fml.relauncher.Side;
    import cpw.mods.fml.relauncher.SideOnly;
    
    @Mod(modid = "custommenu", name = "SlideFight Menu", version = "2.0")
    public class ModCustomMenu
    {
        @EventHandler
        public void init(FMLInitializationEvent event)
        {
            if(event.getSide().isClient())
            {
                FMLCommonHandler.instance().bus().register(this);
            }
        }
    
        @SubscribeEvent
        @SideOnly(Side.CLIENT)
        public void onTick(TickEvent.ClientTickEvent event)
        {
            Minecraft mc = FMLClientHandler.instance().getClient();
            if(mc.currentScreen != null && mc.currentScreen.getClass().equals(GuiMainMenu.class))
            {
                mc.displayGuiScreen(new GuiCustomMainMenu());
            }
            else if(mc.currentScreen != null && mc.currentScreen.getClass().equals(GuiIngameMenu.class))
    
            {
                mc.displayGuiScreen(new GuiCustomIngameMenu());
            }
        }
    }
    

    (il faut créer la classe GuiCustomIngameMenu)


  • Dans la classe GuiCustomIngameMenu c’est les mêmes configurations du GuiCustomMainMenu ?

  • Administrateurs Rédacteurs Moddeurs confirmés

    Déjà répondu plus tôt :
    @‘robin4002’:

    Il y aura une erreur dessus car elle n’existe pas, il te suffira de la créer. Ensuite tu copies / colles tout ce qu’il y a dans GuiIngameMenu, tu aura juste a changer le nom de la classe et ajouter les importation qui manque (ctrl + shift + o) et voila.


  • Le problème c’est que ça me relance le menu personnalisé 😕
    Et ou est ce que je peux connaitre l’id des boutons tel que deconnexion options et autre ?****

  • Administrateurs Rédacteurs Moddeurs confirmés

    heu ?!?
    Tu as copier quelle classe ? Je t’ai dit de copier GuiIngameMenu (se trouve dans net.minecraft.client.gui), pas GuiCustomMainMenu …


  • ‘-’ il faut que je retourne en CP apprendre à lire … Désolé c’est de ma faute je fais ça dès que je peux

    Edit : Je veux rouvrir eclipse ça me met un erreur : VOici les logs de l’erreur : ```
    !SESSION 2015-03-27 20:15:29.595 –---------------------------------------------
    eclipse.buildId=4.4.0.I20140606-1215
    java.version=1.8.0_40
    java.vendor=Oracle Corporation
    BootLoader constants: OS=win32, ARCH=x86_64, WS=win32, NL=fr_FR
    Framework arguments: -product org.eclipse.epp.package.standard.product
    Command-line arguments: -data C:\Users\Braddy_2\Desktop\Braddy\forge-1.7.10\eclipse -os win32 -ws win32 -arch x86_64 -product org.eclipse.epp.package.standard.product

    !ENTRY org.eclipse.jface 2 0 2015-03-27 20:16:20.032
    !MESSAGE Keybinding conflicts occurred. They may interfere with normal accelerator operation.
    !SUBENTRY 1 org.eclipse.jface 2 0 2015-03-27 20:16:20.033
    !MESSAGE A conflict occurred for ALT+CTRL+P:
    Binding(ALT+CTRL+P,
    ParameterizedCommand(Command(org.eclipse.m2e.profiles.ui.commands.selectMavenProfileCommand,Select Maven Profiles,
    ,
    Category(org.eclipse.ui.category.window,Window,null,true),
    org.eclipse.ui.internal.WorkbenchHandlerServiceHandler@322b09da,
    ,true),null),
    org.eclipse.ui.defaultAcceleratorConfiguration,
    org.eclipse.ui.contexts.window,system)
    Binding(ALT+CTRL+P,
    ParameterizedCommand(Command(org.jboss.tools.maven.ui.commands.selectMavenProfileCommand,Maven Profiles Selection,
    ,
    Category(org.eclipse.ui.category.window,Window,null,true),
    org.eclipse.ui.internal.WorkbenchHandlerServiceHandler@45d389f2,
    ,true),null),
    org.eclipse.ui.defaultAcceleratorConfiguration,
    org.eclipse.ui.contexts.window,system)

    !ENTRY org.jboss.tools.maven.profiles.ui 1 0 2015-03-27 20:16:58.739
    !MESSAGE Found org.eclipse.m2e.profiles.ui, removing conflicting binding for org.jboss.tools.maven.ui.commands.selectMavenProfileCommand

    !ENTRY org.eclipse.egit.ui 2 0 2015-03-27 20:17:00.852
    !MESSAGE Warning: EGit couldn’t detect the installation path “gitPrefix” of native Git. Hence EGit can’t respect system level
    Git settings which might be configured in ${gitPrefix}/etc/gitconfig under the native Git installation directory.
    The most important of these settings is core.autocrlf. Git for Windows by default sets this parameter to true in
    this system level configuration. The Git installation location can be configured on the
    Team > Git > Configuration preference page’s ‘System Settings’ tab.
    This warning can be switched off on the Team > Git > Confirmations and Warnings preference page.

    !ENTRY org.eclipse.egit.ui 2 0 2015-03-27 20:17:01.110
    !MESSAGE Warning: The environment variable HOME is not set. The following directory will be used to store the Git
    user global configuration and to define the default location to store repositories: ‘C:\Users\Braddy_2’. If this is
    not correct please set the HOME environment variable and restart Eclipse. Otherwise Git for Windows and
    EGit might behave differently since they see different configuration options.
    This warning can be switched off on the Team > Git > Confirmations and Warnings preference page.

    !ENTRY org.eclipse.ui 4 4 2015-03-27 20:45:50.393
    !MESSAGE Conflicting handlers for org.eclipse.wst.sse.ui.format: {org.eclipse.wst.sse.ui.internal.handlers.FormatHandler} vs {org.eclipse.wst.sse.ui.internal.handlers.FormatHandler}
    !SESSION 2015-05-01 17:26:18.029 -----------------------------------------------
    eclipse.buildId=4.4.2.M20150204-1700
    java.version=1.8.0_40
    java.vendor=Oracle Corporation
    BootLoader constants: OS=win32, ARCH=x86_64, WS=win32, NL=fr_FR
    Framework arguments: -product org.eclipse.epp.package.java.product
    Command-line arguments: -data C:\Users\Braddy_2\Desktop\Braddy\forge-1.7.10 - Copie\eclipse -os win32 -ws win32 -arch x86_64 -product org.eclipse.epp.package.java.product

    !ENTRY org.eclipse.core.resources 2 10035 2015-05-01 17:26:56.727
    !MESSAGE The workspace exited with unsaved changes in the previous session; refreshing workspace to recover changes.

    !ENTRY org.eclipse.egit.ui 2 0 2015-05-01 17:34:14.665
    !MESSAGE Warning: EGit couldn’t detect the installation path “gitPrefix” of native Git. Hence EGit can’t respect system level
    Git settings which might be configured in ${gitPrefix}/etc/gitconfig under the native Git installation directory.
    The most important of these settings is core.autocrlf. Git for Windows by default sets this parameter to true in
    this system level configuration. The Git installation location can be configured on the
    Team > Git > Configuration preference page’s ‘System Settings’ tab.
    This warning can be switched off on the Team > Git > Confirmations and Warnings preference page.

    !ENTRY org.eclipse.egit.ui 2 0 2015-05-01 17:34:14.681
    !MESSAGE Warning: The environment variable HOME is not set. The following directory will be used to store the Git
    user global configuration and to define the default location to store repositories: ‘C:\Users\Braddy_2’. If this is
    not correct please set the HOME environment variable and restart Eclipse. Otherwise Git for Windows and
    EGit might behave differently since they see different configuration options.
    This warning can be switched off on the Team > Git > Confirmations and Warnings preference page.

    !ENTRY org.eclipse.ui 4 0 2015-05-01 20:47:50.500
    !MESSAGE Unhandled event loop exception
    !STACK 0
    java.lang.NullPointerException
    at org.eclipse.swt.widgets.Widget.sendMouseEvent(Widget.java:1118)
    at org.eclipse.swt.widgets.Widget.wmMouseMove(Widget.java:2216)
    at org.eclipse.swt.widgets.Control.WM_MOUSEMOVE(Control.java:5115)
    at org.eclipse.swt.widgets.Control.windowProc(Control.java:4657)
    at org.eclipse.swt.widgets.Table.windowProc(Table.java:5939)
    at org.eclipse.swt.widgets.Display.windowProc(Display.java:5036)
    at org.eclipse.swt.internal.win32.OS.DispatchMessageW(Native Method)
    at org.eclipse.swt.internal.win32.OS.DispatchMessage(OS.java:2549)
    at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3759)
    at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine$9.run(PartRenderingEngine.java:1151)
    at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:332)
    at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.run(PartRenderingEngine.java:1032)
    at org.eclipse.e4.ui.internal.workbench.E4Workbench.createAndRunUI(E4Workbench.java:148)
    at org.eclipse.ui.internal.Workbench$5.run(Workbench.java:636)
    at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:332)
    at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:579)
    at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:150)
    at org.eclipse.ui.internal.ide.application.IDEApplication.start(IDEApplication.java:135)
    at org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:196)
    at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:134)
    at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:104)
    at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:380)
    at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:235)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
    at java.lang.reflect.Method.invoke(Unknown Source)
    at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:648)
    at org.eclipse.equinox.launcher.Main.basicRun(Main.java:603)
    at org.eclipse.equinox.launcher.Main.run(Main.java:1465)
    at org.eclipse.equinox.launcher.Main.main(Main.java:1438)
    !SESSION 2015-05-02 12:38:39.934 -----------------------------------------------
    eclipse.buildId=4.4.2.M20150204-1700
    java.version=1.8.0_40
    java.vendor=Oracle Corporation
    BootLoader constants: OS=win32, ARCH=x86_64, WS=win32, NL=fr_FR
    Framework arguments: -product org.eclipse.epp.package.java.product
    Command-line arguments: -os win32 -ws win32 -arch x86_64 -product org.eclipse.epp.package.java.product

    !ENTRY org.eclipse.core.resources 2 10035 2015-05-02 12:39:14.965
    !MESSAGE The workspace exited with unsaved changes in the previous session; refreshing workspace to recover changes.

    !ENTRY org.eclipse.osgi 4 0 2015-05-02 12:39:17.567
    !MESSAGE An error occurred while automatically activating bundle org.eclipse.core.resources (77).
    !STACK 0
    org.osgi.framework.BundleException: Exception in org.eclipse.core.resources.ResourcesPlugin.start() of bundle org.eclipse.core.resources.
    at org.eclipse.osgi.internal.framework.BundleContextImpl.startActivator(BundleContextImpl.java:792)
    at org.eclipse.osgi.internal.framework.BundleContextImpl.start(BundleContextImpl.java:721)
    at org.eclipse.osgi.internal.framework.EquinoxBundle.startWorker0(EquinoxBundle.java:936)
    at org.eclipse.osgi.internal.framework.EquinoxBundle$EquinoxModule.startWorker(EquinoxBundle.java:319)
    at org.eclipse.osgi.container.Module.doStart(Module.java:571)
    at org.eclipse.osgi.container.Module.start(Module.java:439)
    at org.eclipse.osgi.framework.util.SecureAction.start(SecureAction.java:454)
    at org.eclipse.osgi.internal.hooks.EclipseLazyStarter.postFindLocalClass(EclipseLazyStarter.java:107)
    at org.eclipse.osgi.internal.loader.classpath.ClasspathManager.findLocalClass(ClasspathManager.java:531)
    at org.eclipse.osgi.internal.loader.ModuleClassLoader.findLocalClass(ModuleClassLoader.java:324)
    at org.eclipse.osgi.internal.loader.BundleLoader.findLocalClass(BundleLoader.java:320)
    at org.eclipse.osgi.internal.loader.sources.SingleSourcePackage.loadClass(SingleSourcePackage.java:36)
    at org.eclipse.osgi.internal.loader.BundleLoader.findClassInternal(BundleLoader.java:391)
    at org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:345)
    at org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:337)
    at org.eclipse.osgi.internal.loader.ModuleClassLoader.loadClass(ModuleClassLoader.java:160)
    at java.lang.ClassLoader.loadClass(Unknown Source)
    at org.eclipse.ui.internal.ide.application.IDEApplication.start(IDEApplication.java:136)
    at org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:196)
    at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:134)
    at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:104)
    at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:380)
    at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:235)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
    at java.lang.reflect.Method.invoke(Unknown Source)
    at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:648)
    at org.eclipse.equinox.launcher.Main.basicRun(Main.java:603)
    at org.eclipse.equinox.launcher.Main.run(Main.java:1465)
    at org.eclipse.equinox.launcher.Main.main(Main.java:1438)
    Caused by: org.eclipse.core.internal.dtree.ObjectNotFoundException: Tree element ‘/Minecraft/src/main/resources/mcmod.info’ not found.
    at org.eclipse.core.internal.dtree.AbstractDataTree.handleNotFound(AbstractDataTree.java:257)
    at org.eclipse.core.internal.dtree.DeltaDataTree.getData(DeltaDataTree.java:585)
    at org.eclipse.core.internal.dtree.DataDeltaNode.asBackwardDelta(DataDeltaNode.java:50)
    at org.eclipse.core.internal.dtree.NoDataDeltaNode.asBackwardDelta(NoDataDeltaNode.java:59)
    at org.eclipse.core.internal.dtree.NoDataDeltaNode.asBackwardDelta(NoDataDeltaNode.java:59)
    at org.eclipse.core.internal.dtree.NoDataDeltaNode.asBackwardDelta(NoDataDeltaNode.java:59)
    at org.eclipse.core.internal.dtree.DataDeltaNode.asBackwardDelta(DataDeltaNode.java:47)
    at org.eclipse.core.internal.dtree.DataDeltaNode.asBackwardDelta(DataDeltaNode.java:47)
    at org.eclipse.core.internal.dtree.DeltaDataTree.asBackwardDelta(DeltaDataTree.java:88)
    at org.eclipse.core.internal.dtree.DeltaDataTree.reroot(DeltaDataTree.java:816)
    at org.eclipse.core.internal.dtree.DeltaDataTree.reroot(DeltaDataTree.java:815)
    at org.eclipse.core.internal.dtree.DeltaDataTree.reroot(DeltaDataTree.java:815)
    at org.eclipse.core.internal.dtree.DeltaDataTree.reroot(DeltaDataTree.java:815)
    at org.eclipse.core.internal.dtree.DeltaDataTree.reroot(DeltaDataTree.java:815)
    at org.eclipse.core.internal.dtree.DeltaDataTree.reroot(DeltaDataTree.java:815)
    at org.eclipse.core.internal.dtree.DeltaDataTree.reroot(DeltaDataTree.java:792)
    at org.eclipse.core.internal.watson.ElementTree.immutable(ElementTree.java:518)
    at org.eclipse.core.internal.resources.SaveManager.restore(SaveManager.java:722)
    at org.eclipse.core.internal.resources.SaveManager.startup(SaveManager.java:1565)
    at org.eclipse.core.internal.resources.Workspace.startup(Workspace.java:2464)
    at org.eclipse.core.internal.resources.Workspace.open(Workspace.java:2219)
    at org.eclipse.core.resources.ResourcesPlugin.start(ResourcesPlugin.java:447)
    at org.eclipse.osgi.internal.framework.BundleContextImpl$3.run(BundleContextImpl.java:771)
    at org.eclipse.osgi.internal.framework.BundleContextImpl$3.run(BundleContextImpl.java:1)
    at java.security.AccessController.doPrivileged(Native Method)
    at org.eclipse.osgi.internal.framework.BundleContextImpl.startActivator(BundleContextImpl.java:764)
    … 30 more
    Root exception:
    org.eclipse.core.internal.dtree.ObjectNotFoundException: Tree element ‘/Minecraft/src/main/resources/mcmod.info’ not found.
    at org.eclipse.core.internal.dtree.AbstractDataTree.handleNotFound(AbstractDataTree.java:257)
    at org.eclipse.core.internal.dtree.DeltaDataTree.getData(DeltaDataTree.java:585)
    at org.eclipse.core.internal.dtree.DataDeltaNode.asBackwardDelta(DataDeltaNode.java:50)
    at org.eclipse.core.internal.dtree.NoDataDeltaNode.asBackwardDelta(NoDataDeltaNode.java:59)
    at org.eclipse.core.internal.dtree.NoDataDeltaNode.asBackwardDelta(NoDataDeltaNode.java:59)
    at org.eclipse.core.internal.dtree.NoDataDeltaNode.asBackwardDelta(NoDataDeltaNode.java:59)
    at org.eclipse.core.internal.dtree.DataDeltaNode.asBackwardDelta(DataDeltaNode.java:47)
    at org.eclipse.core.internal.dtree.DataDeltaNode.asBackwardDelta(DataDeltaNode.java:47)
    at org.eclipse.core.internal.dtree.DeltaDataTree.asBackwardDelta(DeltaDataTree.java:88)
    at org.eclipse.core.internal.dtree.DeltaDataTree.reroot(DeltaDataTree.java:816)
    at org.eclipse.core.internal.dtree.DeltaDataTree.reroot(DeltaDataTree.java:815)
    at org.eclipse.core.internal.dtree.DeltaDataTree.reroot(DeltaDataTree.java:815)
    at org.eclipse.core.internal.dtree.DeltaDataTree.reroot(DeltaDataTree.java:815)
    at org.eclipse.core.internal.dtree.DeltaDataTree.reroot(DeltaDataTree.java:815)
    at org.eclipse.core.internal.dtree.DeltaDataTree.reroot(DeltaDataTree.java:815)
    at org.eclipse.core.internal.dtree.DeltaDataTree.reroot(DeltaDataTree.java:792)
    at org.eclipse.core.internal.watson.ElementTree.immutable(ElementTree.java:518)
    at org.eclipse.core.internal.resources.SaveManager.restore(SaveManager.java:722)
    at org.eclipse.core.internal.resources.SaveManager.startup(SaveManager.java:1565)
    at org.eclipse.core.internal.resources.Workspace.startup(Workspace.java:2464)
    at org.eclipse.core.internal.resources.Workspace.open(Workspace.java:2219)
    at org.eclipse.core.resources.ResourcesPlugin.start(ResourcesPlugin.java:447)
    at org.eclipse.osgi.internal.framework.BundleContextImpl$3.run(BundleContextImpl.java:771)
    at org.eclipse.osgi.internal.framework.BundleContextImpl$3.run(BundleContextImpl.java:1)
    at java.security.AccessController.doPrivileged(Native Method)
    at org.eclipse.osgi.internal.framework.BundleContextImpl.startActivator(BundleContextImpl.java:764)
    at org.eclipse.osgi.internal.framework.BundleContextImpl.start(BundleContextImpl.java:721)
    at org.eclipse.osgi.internal.framework.EquinoxBundle.startWorker0(EquinoxBundle.java:936)
    at org.eclipse.osgi.internal.framework.EquinoxBundle$EquinoxModule.startWorker(EquinoxBundle.java:319)
    at org.eclipse.osgi.container.Module.doStart(Module.java:571)
    at org.eclipse.osgi.container.Module.start(Module.java:439)
    at org.eclipse.osgi.framework.util.SecureAction.start(SecureAction.java:454)
    at org.eclipse.osgi.internal.hooks.EclipseLazyStarter.postFindLocalClass(EclipseLazyStarter.java:107)
    at org.eclipse.osgi.internal.loader.classpath.ClasspathManager.findLocalClass(ClasspathManager.java:531)
    at org.eclipse.osgi.internal.loader.ModuleClassLoader.findLocalClass(ModuleClassLoader.java:324)
    at org.eclipse.osgi.internal.loader.BundleLoader.findLocalClass(BundleLoader.java:320)
    at org.eclipse.osgi.internal.loader.sources.SingleSourcePackage.loadClass(SingleSourcePackage.java:36)
    at org.eclipse.osgi.internal.loader.BundleLoader.findClassInternal(BundleLoader.java:391)
    at org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:345)
    at org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:337)
    at org.eclipse.osgi.internal.loader.ModuleClassLoader.loadClass(ModuleClassLoader.java:160)
    at java.lang.ClassLoader.loadClass(Unknown Source)
    at org.eclipse.ui.internal.ide.application.IDEApplication.start(IDEApplication.java:136)
    at org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:196)
    at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:134)
    at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:104)
    at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:380)
    at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:235)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
    at java.lang.reflect.Method.invoke(Unknown Source)
    at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:648)
    at org.eclipse.equinox.launcher.Main.basicRun(Main.java:603)
    at org.eclipse.equinox.launcher.Main.run(Main.java:1465)
    at org.eclipse.equinox.launcher.Main.main(Main.java:1438)

    !ENTRY org.eclipse.osgi 4 0 2015-05-02 12:39:17.838
    !MESSAGE Application error
    !STACK 1
    java.lang.NoClassDefFoundError: org/eclipse/core/resources/IContainer
    at org.eclipse.ui.internal.ide.application.IDEApplication.start(IDEApplication.java:136)
    at org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:196)
    at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:134)
    at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:104)
    at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:380)
    at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:235)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
    at java.lang.reflect.Method.invoke(Unknown Source)
    at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:648)
    at org.eclipse.equinox.launcher.Main.basicRun(Main.java:603)
    at org.eclipse.equinox.launcher.Main.run(Main.java:1465)
    at org.eclipse.equinox.launcher.Main.main(Main.java:1438)
    Caused by: java.lang.ClassNotFoundException: An error occurred while automatically activating bundle org.eclipse.core.resources (77).
    at org.eclipse.osgi.internal.hooks.EclipseLazyStarter.postFindLocalClass(EclipseLazyStarter.java:116)
    at org.eclipse.osgi.internal.loader.classpath.ClasspathManager.findLocalClass(ClasspathManager.java:531)
    at org.eclipse.osgi.internal.loader.ModuleClassLoader.findLocalClass(ModuleClassLoader.java:324)
    at org.eclipse.osgi.internal.loader.BundleLoader.findLocalClass(BundleLoader.java:320)
    at org.eclipse.osgi.internal.loader.sources.SingleSourcePackage.loadClass(SingleSourcePackage.java:36)
    at org.eclipse.osgi.internal.loader.BundleLoader.findClassInternal(BundleLoader.java:391)
    at org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:345)
    at org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:337)
    at org.eclipse.osgi.internal.loader.ModuleClassLoader.loadClass(ModuleClassLoader.java:160)
    at java.lang.ClassLoader.loadClass(Unknown Source)
    … 14 more
    Caused by: org.osgi.framework.BundleException: Exception in org.eclipse.core.resources.ResourcesPlugin.start() of bundle org.eclipse.core.resources.
    at org.eclipse.osgi.internal.framework.BundleContextImpl.startActivator(BundleContextImpl.java:792)
    at org.eclipse.osgi.internal.framework.BundleContextImpl.start(BundleContextImpl.java:721)
    at org.eclipse.osgi.internal.framework.EquinoxBundle.startWorker0(EquinoxBundle.java:936)
    at org.eclipse.osgi.internal.framework.EquinoxBundle$EquinoxModule.startWorker(EquinoxBundle.java:319)
    at org.eclipse.osgi.container.Module.doStart(Module.java:571)
    at org.eclipse.osgi.container.Module.start(Module.java:439)
    at org.eclipse.osgi.framework.util.SecureAction.start(SecureAction.java:454)
    at org.eclipse.osgi.internal.hooks.EclipseLazyStarter.postFindLocalClass(EclipseLazyStarter.java:107)
    … 23 more
    Caused by: org.eclipse.core.internal.dtree.ObjectNotFoundException: Tree element ‘/Minecraft/src/main/resources/mcmod.info’ not found.
    at org.eclipse.core.internal.dtree.AbstractDataTree.handleNotFound(AbstractDataTree.java:257)
    at org.eclipse.core.internal.dtree.DeltaDataTree.getData(DeltaDataTree.java:585)
    at org.eclipse.core.internal.dtree.DataDeltaNode.asBackwardDelta(DataDeltaNode.java:50)
    at org.eclipse.core.internal.dtree.NoDataDeltaNode.asBackwardDelta(NoDataDeltaNode.java:59)
    at org.eclipse.core.internal.dtree.NoDataDeltaNode.asBackwardDelta(NoDataDeltaNode.java:59)
    at org.eclipse.core.internal.dtree.NoDataDeltaNode.asBackwardDelta(NoDataDeltaNode.java:59)
    at org.eclipse.core.internal.dtree.DataDeltaNode.asBackwardDelta(DataDeltaNode.java:47)
    at org.eclipse.core.internal.dtree.DataDeltaNode.asBackwardDelta(DataDeltaNode.java:47)
    at org.eclipse.core.internal.dtree.DeltaDataTree.asBackwardDelta(DeltaDataTree.java:88)
    at org.eclipse.core.internal.dtree.DeltaDataTree.reroot(DeltaDataTree.java:816)
    at org.eclipse.core.internal.dtree.DeltaDataTree.reroot(DeltaDataTree.java:815)
    at org.eclipse.core.internal.dtree.DeltaDataTree.reroot(DeltaDataTree.java:815)
    at org.eclipse.core.internal.dtree.DeltaDataTree.reroot(DeltaDataTree.java:815)
    at org.eclipse.core.internal.dtree.DeltaDataTree.reroot(DeltaDataTree.java:815)
    at org.eclipse.core.internal.dtree.DeltaDataTree.reroot(DeltaDataTree.java:815)
    at org.eclipse.core.internal.dtree.DeltaDataTree.reroot(DeltaDataTree.java:792)
    at org.eclipse.core.internal.watson.ElementTree.immutable(ElementTree.java:518)
    at org.eclipse.core.internal.resources.SaveManager.restore(SaveManager.java:722)
    at org.eclipse.core.internal.resources.SaveManager.startup(SaveManager.java:1565)
    at org.eclipse.core.internal.resources.Workspace.startup(Workspace.java:2464)
    at org.eclipse.core.internal.resources.Workspace.open(Workspace.java:2219)
    at org.eclipse.core.resources.ResourcesPlugin.start(ResourcesPlugin.java:447)
    at org.eclipse.osgi.internal.framework.BundleContextImpl$3.run(BundleContextImpl.java:771)
    at org.eclipse.osgi.internal.framework.BundleContextImpl$3.run(BundleContextImpl.java:1)
    at java.security.AccessController.doPrivileged(Native Method)
    at org.eclipse.osgi.internal.framework.BundleContextImpl.startActivator(BundleContextImpl.java:764)
    … 30 more


  • up please