Résolu Problèmes compatibilité ? avec 2 TileEntities [1.12.2]
-
Bonjour à tous et à toutes,
J’ai un soucis assez embêtant :
Quand j’essaye d’ouvrir mon coffre custom, tout se passe bien, mais quand je veux ouvrir mon four custom, j’ai le droit à une jolie erreur :[19:48:41] [Server thread/FATAL] [minecraft/MinecraftServer]: Error executing task java.util.concurrent.ExecutionException: java.lang.ClassCastException: fr.flowarg.gunsofchickens.blocks.tileentities.TileEntityChickenFurnace cannot be cast to fr.flowarg.gunsofchickens.blocks.tileentities.TileEntityChickenChest at java.util.concurrent.FutureTask.report(FutureTask.java:122) ~[?:1.8.0_221] at java.util.concurrent.FutureTask.get(FutureTask.java:192) ~[?:1.8.0_221] at net.minecraft.util.Util.runTask(Util.java:54) [Util.class:?] at net.minecraft.server.MinecraftServer.updateTimeLightAndEntities(MinecraftServer.java:798) [MinecraftServer.class:?] at net.minecraft.server.MinecraftServer.tick(MinecraftServer.java:743) [MinecraftServer.class:?] at net.minecraft.server.integrated.IntegratedServer.tick(IntegratedServer.java:192) [IntegratedServer.class:?] at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:592) [MinecraftServer.class:?] at java.lang.Thread.run(Thread.java:748) [?:1.8.0_221] Caused by: java.lang.ClassCastException: fr.flowarg.gunsofchickens.blocks.tileentities.TileEntityChickenFurnace cannot be cast to fr.flowarg.gunsofchickens.blocks.tileentities.TileEntityChickenChest at fr.flowarg.gunsofchickens.utils.handlers.GUIHandler.getServerGuiElement(GUIHandler.java:20) ~[GUIHandler.class:?] at net.minecraftforge.fml.common.network.NetworkRegistry.getRemoteGuiContainer(NetworkRegistry.java:253) ~[NetworkRegistry.class:?] at net.minecraftforge.fml.common.network.internal.FMLNetworkHandler.openGui(FMLNetworkHandler.java:88) ~[FMLNetworkHandler.class:?] at net.minecraft.entity.player.EntityPlayer.openGui(EntityPlayer.java:2809) ~[EntityPlayer.class:?] at fr.flowarg.gunsofchickens.blocks.machines.chickenfurnace.ChickenFurnace.onBlockActivated(ChickenFurnace.java:59) ~[ChickenFurnace.class:?] at net.minecraft.server.management.PlayerInteractionManager.processRightClickBlock(PlayerInteractionManager.java:475) ~[PlayerInteractionManager.class:?] at net.minecraft.network.NetHandlerPlayServer.processTryUseItemOnBlock(NetHandlerPlayServer.java:769) ~[NetHandlerPlayServer.class:?] at net.minecraft.network.play.client.CPacketPlayerTryUseItemOnBlock.processPacket(CPacketPlayerTryUseItemOnBlock.java:68) ~[CPacketPlayerTryUseItemOnBlock.class:?] at net.minecraft.network.play.client.CPacketPlayerTryUseItemOnBlock.processPacket(CPacketPlayerTryUseItemOnBlock.java:13) ~[CPacketPlayerTryUseItemOnBlock.class:?] at net.minecraft.network.PacketThreadUtil$1.run(PacketThreadUtil.java:21) ~[PacketThreadUtil$1.class:?] at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) ~[?:1.8.0_221] at java.util.concurrent.FutureTask.run(FutureTask.java:266) ~[?:1.8.0_221] at net.minecraft.util.Util.runTask(Util.java:53) ~[Util.class:?] ... 5 more
(j’avais regardé un topic sur ce forum mais le soucis ne venait pas de la et était un peu différent).
Mais, quand j’échange je passe de :
public class GUIHandler implements IGuiHandler { @Override public Object getServerGuiElement(int ID, EntityPlayer player, World world, int x, int y, int z) { if (ID == ConfigHandler.GUI_CHICKEN_CHEST) return new ContainerChickenChest(player.inventory, (TileEntityChickenChest)world.getTileEntity(new BlockPos(x, y, z))); if (ID == ConfigHandler.GUI_CHICKEN_FURNACE) return new ContainerChickenFurnace(player.inventory, (TileEntityChickenFurnace)world.getTileEntity(new BlockPos(x, y, z))); return null; } @Override public Object getClientGuiElement(int ID, EntityPlayer player, World world, int x, int y, int z) { if (ID == ConfigHandler.GUI_CHICKEN_CHEST) return new GUIChickenChest(player.inventory, (TileEntityChickenChest)world.getTileEntity(new BlockPos(x, y, z))); if (ID == ConfigHandler.GUI_CHICKEN_FURNACE) return new GUIChickenFurnace(player.inventory, (TileEntityChickenFurnace)world.getTileEntity(new BlockPos(x, y, z))); return null; } }
à :
public class GUIHandler implements IGuiHandler { @Override public Object getServerGuiElement(int ID, EntityPlayer player, World world, int x, int y, int z) { if (ID == ConfigHandler.GUI_CHICKEN_FURNACE) return new ContainerChickenFurnace(player.inventory, (TileEntityChickenFurnace)world.getTileEntity(new BlockPos(x, y, z))); if (ID == ConfigHandler.GUI_CHICKEN_CHEST) return new ContainerChickenChest(player.inventory, (TileEntityChickenChest)world.getTileEntity(new BlockPos(x, y, z))); return null; } @Override public Object getClientGuiElement(int ID, EntityPlayer player, World world, int x, int y, int z) { if (ID == ConfigHandler.GUI_CHICKEN_FURNACE) return new GUIChickenFurnace(player.inventory, (TileEntityChickenFurnace)world.getTileEntity(new BlockPos(x, y, z))); if (ID == ConfigHandler.GUI_CHICKEN_CHEST) return new GUIChickenChest(player.inventory, (TileEntityChickenChest)world.getTileEntity(new BlockPos(x, y, z))); return null; } }
L’erreur s’inverse, c’est maintenant le coffre qui ne fonctionne plus et le four qui fonctionne !!! Je ne sais que penser, voici tout de même les classes des 2 te.
https://pastebin.com/CJZr2Zbm
https://pastebin.com/gEiwsXsFEn espérant qu’il y est une solution, merci d’avance !
Flow
-
En fait, je suis un gros débile, dans mon fichier de configuration, les ids sont modifibales, et les id par défauts… étaient les mêmes !
Merci tout de même pour tes réponses ! A l’avenir, je ferais plus attention !
Flow
-
Bonsoir,
Tu as surement mis le même id dans les fonctions openGui des blocs.
Après l’idéal c’est de vérifier par rapport au tile entity. -
@robin4002 Salut, merci pour cette réponse rapide
Tu parles de ceci :
@Override public boolean onBlockActivated(World worldIn, BlockPos pos, IBlockState state, EntityPlayer playerIn, EnumHand hand, EnumFacing facing, float hitX, float hitY, float hitZ) { if (!worldIn.isRemote) { playerIn.openGui(Main.instance, ConfigHandler.GUI_CHICKEN_FURNACE, worldIn, pos.getX(), pos.getY(), pos.getZ()); } return true; }
?
Si c’est ça, elles sont bien différentes et les ID sont de 1 et 2.Flow
-
En fait, je suis un gros débile, dans mon fichier de configuration, les ids sont modifibales, et les id par défauts… étaient les mêmes !
Merci tout de même pour tes réponses ! A l’avenir, je ferais plus attention !
Flow