Résolu Modifier la classe GuiConnecting
-
Bonjour,
Je voulais savoir s’il était possible de modifier la classe [font=helvetica, arial, sans-serifGuiConnecting de la même façon que pour le GuiMainMenu ou s’il faut passer par l’ASM ?] -
Par remplacement de classe tu n’aura pas la valeur des variables, donc tu ne sera pas sur quel serveur le joueur veut se co.
Mais il y a quand même un autre moyen. Depuis un moment il existe l’event GuiScreenEvent (il est présent en 1.7.10 et 1.8) qui permet de modifier les guis sans les remplacer.
Voila un exemple de ce qu’on fait sur un de nos mods :
@SubscribeEvent public void onGuiInit(GuiScreenEvent.InitGuiEvent.Post event) { if(event.gui.getClass().equals(GuiConnecting.class)) { event.buttonList.clear(); // supprime le bouton normal event.buttonList.add(new ButtonBottom(0, event.gui.width / 2 - 50, event.gui.height - 28, 100, 20, I18n.format("gui.cancel"))); // ajout de notre propre bouton } else if(event.gui.getClass().equals(GuiDisconnected.class)) { event.buttonList.clear(); event.buttonList.add(new ButtonBottom(0, event.gui.width / 2 - 100, event.gui.height - 28, 200, 20, I18n.format("gui.toMenu"))); } }
Dans notre cas on a juste supprimer le bouton de base pour mettre le notre qui a une apparence différente, mais si tu veux ajouter tes propres boutons avec une action en plus :
public void onButtonPress(GuiScreenEvent.ActionPerformedEvent.Pre event) { if(event.gui.getClass().equals(GuiConnecting.class)) { if(event.button.id == <id de="" ton="" bouton="">) { // action } else if(event.button.id == <autre id="" de="" ton="" bouton="">) { // autre action } // else if pour chaque autres boutons } }
Si tu souhaites ajouter des éléments graphiques (en gros si tu aura voulu ajouter des choses à la fonction drawScreen) il y a l’event GuiScreenEvent.DrawScreenEvent.Pre qui est appelé au début de la fonction drawScreen et GuiScreenEvent.DrawScreenEvent.Post qui est appelé à la fin de fonction drawScreen.</autre></id>