Résolu Modifier boutons
-
Petite question, c’est le même principe pour la modification de l’inventaire ?
J’ai voulu essayer mais malheureusement dans le constructeur de ma class GuiCustomInventory il me demande EntityPlayer par1EntityPlayer.
public GuiCustomInventory(EntityPlayer par1EntityPlayer) { super(par1EntityPlayer.inventoryContainer); this.allowUserInput = true; par1EntityPlayer.addStat(AchievementList.openInventory, 1); }
du coups dans mon TickHandlerInventory il me le réclame:
@Override public void tickEnd(EnumSet <ticktype>type, Object… tickData){ if(type.equals(EnumSet.of(TickType.CLIENT))){ Minecraft mc = Minecraft.getMinecraft(); GuiScreen currentScreen = mc.currentScreen; List players = mc.theWorld.playerEntities; GuiCustomInventory customInventory = new GuiCustomInventory(..); //ici if(currentScreen instanceof GuiInventory && !currentScreen.equals(customInventory)) mc.displayGuiScreen(customInventory); } }
J’ai essayer de plusieurs façon différente d’aller le rechercher mais malheureusement à chaque fois il me retourne null…
Merci d’avance :P</ticktype>
-
Il te faut le joueur en paramètre, je partirais plutôt sur un tickhandler de type player.
-
C’est pas con, j’ai pas spécialement pensé à regarder la documentation (Dans les commentaires du code c’est marqué que pour serveur le type PLAYER…).
Maintenant il veut bien compiler mais par contre il rentre pas dans le if
if(type.equals(EnumSet.of(TickType.PLAYER))) { }
@Override public void tickEnd(EnumSet <ticktype>type, Object… tickData){ if(type.equals(EnumSet.of(TickType.PLAYER))){ Minecraft mc = Minecraft.getMinecraft(); GuiScreen currentScreen = mc.currentScreen; GuiCustomInventory customInventory = new GuiCustomInventory((EntityPlayer) tickData[0]); System.out.println("TESTTTTTTTTTTTTT"); if(currentScreen instanceof GuiInventory && !currentScreen.equals(customInventory)) mc.displayGuiScreen(customInventory); } else System.out.println("FAILLLLLLLLLLLLLLLLLLLLLLL"); }
Petite info sur la documentation :
PLAYER public static final TickType PLAYER client and server side. Fired whenever the players update loop runs. arg 0 : the player arg 1 : the world the player is in ```</ticktype>
-
Oui, car mc.currentScreen retourne GuiForgeInGame
Cette fonction donne le Screen ouvert, le menu de minecraft qui tourne. Elle ne renvoie pas les gui de bloc, entity, etc …
Il faudrait plutot utiliser GuiOpenEvent pour ça, mais tu n’as pas player en argument. Donc je pense pas que ce soit faisable.