Bouton dans le GuiInventory



  • Bonjour,

    Je voudrais savoir comment faire afficher un bouton dans le GuiInventory qui exécute un KeyBind
    En gros j'ouvre l'inventaire, j'ai le bouton, et quand je clique dessu, sa clique sur la touche y par exemple.

    image modèle



  • Salut PlayFlop,
    Une simple recherche sur MFF…

    https://www.minecraftforgefrance.fr/showthread.php?tid=4615&highlight=bouton+inventaire

    Bonne journée



  • @'BaptisteG':

    Salut PlayFlop,
    Une simple recherche sur MFF…

    https://www.minecraftforgefrance.fr/showthread.php?tid=4615&highlight=bouton+inventaire

    Bonne journée

    Je demande pas a recodé tout un inventaire, je cherche a implémenté des boutons, c'est pas pareill


  • Rédacteurs

    Cherche avec l'event OpenGUI



  • Ou tu pourrais check dans un event tické côté serveur, si EntityPlayer#openContainer instanceof GuiContainer, alors tu le remplaces par le tien custom.
    J'ai oublié que les boutons allaient dans le Gui et non dans le Container



  • Il faut que tu utilises les events InitGuiEvent.Post et ActionPerformedEvent pour ajouter puis faire l'action de ton bouton.
    Si tu ne sais pas les utiliser une recherche devrait faire ton bonheur 😉



  • @'AymericRed':

    Il faut que tu utilises les events InitGuiEvent.Post et ActionPerformedEvent pour ajouter puis faire l'action de ton bouton.
    Si tu ne sais pas les utiliser une recherche devrait faire ton bonheur 😉

    Je ne sais pas du tout les utilisé, mais je vais allé voir merci de ton message 🙂


    @'AymericRed':

    Il faut que tu utilises les events InitGuiEvent.Post et ActionPerformedEvent pour ajouter puis faire l'action de ton bouton.
    Si tu ne sais pas les utiliser une recherche devrait faire ton bonheur 😉

    J'ai cherché pendant 2heures et je ne trouve pas 😕 pourrais tu m'éclairé ?



  • Alors il faut passer par l'event "GuiScreenEvent.InitGuiEvent.Post" (il y a un tuto sur les events sur le forum), de là tu peux, comme dans un gui normal ajouter des boutons à "event.buttonList" (mets un id assez élevé pour par rentrer en conflit avec ceux vanilla).
    Ensuite tu utilises l'event "GuiScreenEvent.ActionPerformedEvent.Pre" et si "event.button.id" correspond à ton bouton, tu cancel l'event et fais ton action.



  • J'ai fait ça

    @SubscribeEvent
    public void onInitGuiEvent(InitGuiEvent.Post event) 
    {
    if (event.gui instanceof GuiInventory) 
    {
    int i = event.gui.height / 4 + 48;
    event.buttonList.add(new GuiButton(30, event.gui.width / 2 + 150, i + 24 * 2, 100, 20, "Teamspeak") {
    @Override
    public void mouseReleased(int x, int y) { 
    if (Desktop.isDesktopSupported()) { 
    try {
    Desktop.getDesktop().browse(new URI("ts3server://ts.eraknight.com"));
    } catch (Exception e) {
    }
    }
    }
    });
    }
    
    }
    

    Mais j'ai un souci, c'est que j'ai l'impression que mon inventaire est décalé vers la droite quand il y a des effect de potion…
    Puis je voudrais que le bouton ne fasse qu'appuyé sur une touche, sauriez vous m'aidé ?



  • Merci de toute votre aide, je passe en résolu !


Log in to reply