Un soucie pour des sacs à dos
-
Salut,
Peux-tu envoyer le code de ton gui handler ? -
@‘robin4002’:
Salut,
Peux-tu envoyer le code de ton gui handler ?Biensur mais je vois pas de quel classe il s’agit
-
@‘robin4002’:
Salut,
Peux-tu envoyer le code de ton gui handler ?package fr.extazilia.extaziliamod.proxy; import java.util.HashMap; import java.util.Map; import cpw.mods.fml.common.network.IGuiHandler; import fr.extazilia.extaziliamod.common.sac.ContainerBackPack; import fr.extazilia.extaziliamod.common.sac.GuiBackPack; import fr.extazilia.extaziliamod.common.sac.InventoryBackPack; import fr.extazilia.extaziliamod.common.sac.ItemBackPack; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.world.World; public class CommonProxy implements IGuiHandler{ private final static Map <string, nbttagcompound="">extendedEntityData = new HashMap<string, nbttagcompound="">(); public void registerRender(){System.out.println("test serveur"); } public static void storeEntityData(String name, NBTTagCompound compound) { extendedEntityData.put(name, compound); } public static NBTTagCompound getEntityData(String name) { return extendedEntityData.remove(name); } @Override public Object getServerGuiElement(int ID, EntityPlayer player, World world,int x, int y, int z) { switch (ID) { case 0: // The last parameter must be a multiple of 9 (e.g: 9, 18, 27, 54) // Condition to check if the player has the right item in hand if (player.getHeldItem() == null || !(player.getHeldItem().getItem() instanceof ItemBackPack)){ return null;} else{return new ContainerBackPack(player.inventory, new InventoryBackPack(player.getHeldItem(), 54));} } return null; } @Override public Object getClientGuiElement(int ID, EntityPlayer player, World world,int x, int y, int z) { switch (ID) { case 0: // The last parameter must be a multiple of 9 (e.g: 9, 18, 27, 54) // Condition to check if the player has the right item in hand if (player.getHeldItem() == null || !(player.getHeldItem().getItem() instanceof ItemBackPack)) {return null;} else {return new GuiBackPack(player.inventory, new InventoryBackPack(player.getHeldItem(), 54));} } return null; } } ```</string,></string,> -
Ton gui handler ne devrait pas être mélangé avec ton proxy.
-
C’est tout à fait possible si c’est bien fait
-
Oui mais c’est source d’erreur, donc vaut mieux éviter.
S’il y a ré-implémenté les fonctions en mettant return null dans le client proxy, ça expliquerai le souci.Si ce n’est pas le cas, je pense que le gui handler est tout simplement pas enregistré.
-
@‘robin4002’:
Ton gui handler ne devrait pas être mélangé avec ton proxy.
Ah d’accord néanmoins cela crash encore, je pense que j’ais mal réalisé ma classe :
package fr.extazilia.extaziliamod.proxy; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.world.World; import cpw.mods.fml.common.network.IGuiHandler; import fr.extazilia.extaziliamod.common.sac.ContainerBackPack; import fr.extazilia.extaziliamod.common.sac.GuiBackPack; import fr.extazilia.extaziliamod.common.sac.InventoryBackPack; import fr.extazilia.extaziliamod.common.sac.ItemBackPack; public class GuiHandler implements IGuiHandler{ @Override public Object getServerGuiElement(int ID, EntityPlayer player, World world, int x, int y, int z) { switch (ID) { case 0: // The last parameter must be a multiple of 9 (e.g: 9, 18, 27, 54) // Condition to check if the player has the right item in hand if (player.getHeldItem() == null || !(player.getHeldItem().getItem() instanceof ItemBackPack)) return null; return new ContainerBackPack(player.inventory, new InventoryBackPack(player.getHeldItem(), 54)); } return null; } @Override public Object getClientGuiElement(int ID, EntityPlayer player, World world, int x, int y, int z) { switch (ID) { case 0: // The last parameter must be a multiple of 9 (e.g: 9, 18, 27, 54) // Condition to check if the player has the right item in hand if (player.getHeldItem() == null || !(player.getHeldItem().getItem() instanceof ItemBackPack)) return null; return new GuiBackPack(player.inventory, new InventoryBackPack(player.getHeldItem(), 54)); } return null; } } -
Où as-tu enregistré ton gui handler ?
-
@‘SCAREX’:
Où as-tu enregistré ton gui handler ?
Dans ma classe principal avec :
MinecraftForge.EVENT_BUS.register(new GuiHandler()); FMLCommonHandler.instance().bus().register(new GuiHandler()); -
Ceci ne vas pas l’enregistrer comme GuiHandler mais comme classe d’évents, normal que ça ne marche pas. Il faut faire NetworkRegistry.INSTANCE.registerGuiHandler(new GuiHandler());
-
Merci à tous