Résolu Supprimer un bouton (menu option)
-
Bonjour à toutes et à tous!
Je cherche actuellement le codage qui permetterais l’enlevé le bouton pack de texture du menu option…
En effet, les joueurs utilisent des packs de texture x-ray sur mon serveur (qui a un launcher) et un pack de texture spécial pour mon serveur est déjà présent.
Voila ou j’en suis:
-J’ai téléchargé le src de forge 1.7.10
-J’ai lancé gradlew
-J’ai ouvert avec eclipse
-J’ai mon dossier com avec example mod dedans.Merci d’avance pour votre aide, et si vous avez besoin d’info supplémentaire, dîtes le moi
-
Il vaut mieux que tu apprennes à coder avec forge gradle avant de demander de l’aide. Sais-tu au moins coder en Java ?
Une fois que tu sauras coder (tu peux trouver de bons tutoriels pour apprendre sur ce forum), voici du code qui devrait t’aider :
@SubscribeEvent public void onInitGuiEvent(InitGuiEvent event){ if (event.gui instanceof leGuiVoulu) event.buttonList.remove(index); // index est la position dans la liste, il faut tous les essayer pour trouver le bon. }
-
Bonjour,
meci pour la réponse rapide.
Je vous donne le contenu de la class principal:package com.google.lesfreresdemon.common; import net.minecraftforge.client.event.GuiScreenEvent.InitGuiEvent; import cpw.mods.fml.common.Mod; import cpw.mods.fml.common.Mod.Instance; import cpw.mods.fml.common.eventhandler.SubscribeEvent; @Mod(modid = "Ingame", name = "Menu in game CraftZ", version = "1.0.0") public class Ingame { @Instance("Ingame") public static Ingame instance; @SubscribeEvent public void onInitGuiEvent(InitGuiEvent event){ if (event.gui instanceof leGuiVoulu) event.buttonList.remove(index); } }
Qu’est ce qu’il faut que je mette a index et a leGuiVoulu?
Merci d’avance -
1. Penses à utiliser les balises java, elle sont faites pour çà
2. Si tu avais suivis correctement le tutoriel, tu saurais qu’il faut enregistrer la classe où se trouve cette méthode avec MinecraftForge.EVENT_BUS.register(uneInstanceDeTaClasse)
3. Le gui voulu dépend du gui que tu veux, si tu veux supprimer un bouton du menu principal, ce sera GuiMainMenu, pour les resource packs ce sera GuiOptions.
4. Pour l’index : lit le commentaire mis juste à côté bien en évidence que tu as surement dû voir mais vu que tu veux qu’on te mâche le travail tu préfère demander quoi mettre sauf que personne ne peut réponde à ta question comme marqué dans le commentaire. -
Bonjour,
merci pour votre réponse, je pense avoir trouvé comment faire.
Mais savez vous le nom du gui des option?
EDIT:
[size=x-smallJ’ai trouvé sa qui pourrait être intéressant:]
[size=x-smallthis.buttonList.add(new GuiButton(105, this.width / 2 - 155, this.height / 6 + 144 - 6, 150, 20, I18n.format(“options.resourcepack”, new Object[0])));]
[size=x-smallDans le mcp de vanilla]___J’ai trouvé sa qui pourrait être intéressant:
this.buttonList.add(new GuiButton(105, this.width / 2 - 155, this.height / 6 + 144 - 6, 150, 20, I18n.format(“options.resourcepack”, new Object[0])));
Dans le mcp de vanilla -
@‘SCAREX’:
GuiOptions
Pour le nom du Gui. La méthode que je t’ai donné enlève le bouton, ce que toi tu fais c’est rajouter un bouton, il faut savoir ce que l’on veut.
PS : lis les règles du forum, 24h entre 2 messages de la même personne à la suite sur un même sujet, sinon édite le premier message.
-
@SubscribeEvent public void onInitGuiEvent(InitGuiEvent event) { if (event.gui instanceof GuiOptions) { for(Object o : event.buttonList) { if(o instanceof GuiButton && ((GuiButton)o).id == 105) { event.buttonList.remove(o); } } } }
-
Bonjour robin4002.
J’ai copié collé le code qui tu avais mis mais event.buttonList affcihe une erreur:
Type mismatch: cannot convert from element type Object to GuiButton -
Ça casse les pieds ces array d’objets …
J’ai modifié mon message. -
Merci pour la réponse, l’erreur a disparut.
mais le bouton Resource Packs est toujours là.
Sais tu comment trouver l’id d’un bouton? -
Regarde dans la classe GuiOptions
-
Ça ne fonctionne pas sûrement car tu n’as pas enregistré l’event …
-
Bonjour,
Comment fait on pour enregistrer l’event?
EDIT:
Voila a quoi ressemble la class Ingame dans le package com.google.lesfreresdemon.clientpackage com.google.lesfreresdemon.client; import net.minecraft.client.gui.GuiButton; import net.minecraft.client.gui.GuiOptions; import net.minecraftforge.client.event.GuiScreenEvent.InitGuiEvent; import cpw.mods.fml.common.Mod; import cpw.mods.fml.common.Mod.Instance; import cpw.mods.fml.common.eventhandler.SubscribeEvent; @Mod(modid = "Ingame", name = "Menu CraftZ", version = "1.0.0") public class Ingame { @Instance("Ingame") public static Ingame instance; @SubscribeEvent public void onInitGuiEvent(InitGuiEvent event) { if (event.gui instanceof GuiOptions) { for(Object o : event.buttonList) { if(o instanceof GuiButton && ((GuiButton)o).id == 105) { event.buttonList.remove(o); } } } } }
-
http://www.minecraftforgefrance.fr/showthread.php?tid=587#classe1 - il te manque au moins la fonction init (le minimum à avoir)
http://www.minecraftforgefrance.fr/showthread.php?tid=716#classe1 - la réponse à ta question -
Ce message a été supprimé !