Posted March 24, 201411 yr Hey Guys! I created a new Sign for my mod. The problem is, that I can't sync the sign after exiting the gui, because the method I tried leads to an error. If i click on done in the gui, the game crashes. onGuiClosed @Override public void onGuiClosed() { Keyboard.enableRepeatEvents(false); NetHandlerPlayClient nethandlerplayclient = this.mc.getNetHandler(); if (nethandlerplayclient != null) { NBTTagCompound comp = new NBTTagCompound(); this.te.writeToNBT(comp); nethandlerplayclient.addToSendQueue(new S35PacketUpdateTileEntity(te.xCoord, te.yCoord, te.zCoord, te.blockMetadata, comp)); } } Important parts of the TileEntity: public class TileEntityLargeSign extends TileEntity { [...] @Override public void readFromNBT(NBTTagCompound comp) { super.readFromNBT(comp); for (int i = 0; i < 6; i ++) { text[0][i] = comp.getString("off" + i); if (((ModBlockLargeSign)this.getBlockType()).isRedstoneSign) text[1][i] = comp.getString("on" + i); } } @Override public void writeToNBT(NBTTagCompound comp) { super.writeToNBT(comp); for (int i = 0; i < 6; i ++) { comp.setString("off" + i, text[0][i]); if (((ModBlockLargeSign)this.getBlockType()).isRedstoneSign) comp.setString("on" + i, text[1][i]); } } @Override public Packet getDescriptionPacket() { NBTTagCompound comp = new NBTTagCompound(); writeToNBT(comp); return new S35PacketUpdateTileEntity(xCoord, yCoord, zCoord, getBlockMetadata(), comp); } @Override public void onDataPacket(NetworkManager net, S35PacketUpdateTileEntity pkt) { readFromNBT(pkt.func_148857_g()); } } And the error screen: [19:33:20] [server thread/ERROR]: Encountered an unexpected exception net.minecraft.util.ReportedException: Ticking memory connection at net.minecraft.network.NetworkSystem.networkTick(NetworkSystem.java:206) ~[NetworkSystem.class:?] at net.minecraft.server.MinecraftServer.updateTimeLightAndEntities(MinecraftServer.java:762) ~[MinecraftServer.class:?] at net.minecraft.server.MinecraftServer.tick(MinecraftServer.java:650) ~[MinecraftServer.class:?] at net.minecraft.server.integrated.IntegratedServer.tick(IntegratedServer.java:120) ~[integratedServer.class:?] at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:528) [MinecraftServer.class:?] at net.minecraft.server.MinecraftServer$2.run(MinecraftServer.java:787) [MinecraftServer$2.class:?] Caused by: java.lang.ClassCastException: net.minecraft.network.NetHandlerPlayServer cannot be cast to net.minecraft.network.play.INetHandlerPlayClient at net.minecraft.network.play.server.S35PacketUpdateTileEntity.processPacket(S35PacketUpdateTileEntity.java:69) ~[s35PacketUpdateTileEntity.class:?] at net.minecraft.network.NetworkManager.processReceivedPackets(NetworkManager.java:242) ~[NetworkManager.class:?] at net.minecraft.network.NetworkSystem.networkTick(NetworkSystem.java:190) ~[NetworkSystem.class:?] ... 5 more [19:33:20] [server thread/ERROR]: This crash report has been saved to: C:\Users\Julian\Desktop\Modding\SignCraft\SignCraft\.\crash-reports\crash-2014-03-24_19.33.20-server.txt [19:33:20] [server thread/INFO]: Stopping server [19:33:20] [server thread/INFO]: Saving players [19:33:20] [server thread/INFO]: Saving worlds [19:33:20] [server thread/INFO]: Saving chunks for level 'New World'/Overworld ---- Minecraft Crash Report ---- // Daisy, daisy... Time: 24.03.14 19:33 Description: Ticking memory connection java.lang.ClassCastException: net.minecraft.network.NetHandlerPlayServer cannot be cast to net.minecraft.network.play.INetHandlerPlayClient at net.minecraft.network.play.server.S35PacketUpdateTileEntity.processPacket(S35PacketUpdateTileEntity.java:69) at net.minecraft.network.NetworkManager.processReceivedPackets(NetworkManager.java:242) at net.minecraft.network.NetworkSystem.networkTick(NetworkSystem.java:190) at net.minecraft.server.MinecraftServer.updateTimeLightAndEntities(MinecraftServer.java:762) at net.minecraft.server.MinecraftServer.tick(MinecraftServer.java:650) at net.minecraft.server.integrated.IntegratedServer.tick(IntegratedServer.java:120) at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:528) at net.minecraft.server.MinecraftServer$2.run(MinecraftServer.java:787) A detailed walkthrough of the error, its code path and all known details is as follows: --------------------------------------------------------------------------------------- -- Head -- Stacktrace: at net.minecraft.network.play.server.S35PacketUpdateTileEntity.processPacket(S35PacketUpdateTileEntity.java:69) at net.minecraft.network.NetworkManager.processReceivedPackets(NetworkManager.java:242) -- Ticking connection -- Details: Connection: net.minecraft.network.NetworkManager@125e3283 Stacktrace: at net.minecraft.network.NetworkSystem.networkTick(NetworkSystem.java:190) at net.minecraft.server.MinecraftServer.updateTimeLightAndEntities(MinecraftServer.java:762) at net.minecraft.server.MinecraftServer.tick(MinecraftServer.java:650) at net.minecraft.server.integrated.IntegratedServer.tick(IntegratedServer.java:120) at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:528) at net.minecraft.server.MinecraftServer$2.run(MinecraftServer.java:787) -- System Details -- Details: Minecraft Version: 1.7.2 Operating System: Windows 7 (amd64) version 6.1 Java Version: 1.7.0_60-ea, Oracle Corporation Java VM Version: Java HotSpot(TM) 64-Bit Server VM (mixed mode), Oracle Corporation Memory: 246721824 bytes (235 MB) / 452460544 bytes (431 MB) up to 943194112 bytes (899 MB) JVM Flags: 0 total; AABB Pool Size: 4788 (268128 bytes; 0 MB) allocated, 4232 (236992 bytes; 0 MB) used IntCache: cache: 0, tcache: 0, allocated: 13, tallocated: 95 FML: MCP v9.01-pre FML v7.2.116.1024 Minecraft Forge 10.12.0.1024 4 mods loaded, 4 mods active mcp{8.09} [Minecraft Coder Pack] (minecraft.jar) Unloaded->Constructed->Pre-initialized->Initialized->Post-initialized->Available->Available->Available->Available FML{7.2.116.1024} [Forge Mod Loader] (forgeSrc-1.7.2-10.12.0.1024.jar) Unloaded->Constructed->Pre-initialized->Initialized->Post-initialized->Available->Available->Available->Available Forge{10.12.0.1024} [Minecraft Forge] (forgeSrc-1.7.2-10.12.0.1024.jar) Unloaded->Constructed->Pre-initialized->Initialized->Post-initialized->Available->Available->Available->Available signcraft{1.0.0} [signCraft] (bin) Unloaded->Constructed->Pre-initialized->Initialized->Post-initialized->Available->Available->Available->Available Profiler Position: N/A (disabled) Vec3 Pool Size: 1363 (76328 bytes; 0 MB) allocated, 1084 (60704 bytes; 0 MB) used Player Count: 1 / 8; [EntityPlayerMP['_Bedrock_Miner_'/402, l='New World', x=14,35, y=86,02, z=307,96]] Type: Integrated Server (map_client.txt) Is Modded: Definitely; Client brand changed to 'fml,forge' #@!@# Game crashed! Crash report saved to: #@!@# .\crash-reports\crash-2014-03-24_19.33.20-server.txt [19:33:20] [Client Shutdown Thread/INFO]: Stopping server [19:33:20] [Client Shutdown Thread/INFO]: Saving players AL lib: (EE) alc_cleanup: 1 device not closed http://i.imgur.com/wNvtGZw.png[/img] MODS and MODDING TUTORIALS
March 24, 201411 yr Caused by: java.lang.ClassCastException: net.minecraft.network.NetHandlerPlayServer cannot be cast to net.minecraft.network.play.INetHandlerPlayClient at net.minecraft.network.play.server.S35PacketUpdateTileEntity.processPacket(S35PacketUpdateTileEntity.java:69) ~[s35PacketUpdateTileEntity.class:?] Maybe.... Don't PM me with questions. They will be ignored! Make a thread on the appropriate board for support. 1.12 -> 1.13 primer by williewillus. 1.7.10 and older versions of Minecraft are no longer supported due to it's age! Update to the latest version for support. http://www.howoldisminecraft1710.today/
March 24, 201411 yr Do you open the GUI on the client or server side? I like to make mods, just like you. Here's one worth checking out
March 24, 201411 yr Author The GUI is opened, of course, on client side, so I can't understand why a Serverside packethandler is passed. http://i.imgur.com/wNvtGZw.png[/img] MODS and MODDING TUTORIALS
March 24, 201411 yr Author Oh, ok.. But which packed should I use instead? http://i.imgur.com/wNvtGZw.png[/img] MODS and MODDING TUTORIALS
March 24, 201411 yr Author Well, I now created a class that extends Packet. But how can I get access to the world or the Tile Entities in processPacket to commit the sended changes? package com.bedrockminer.signcraft.client.client.packet; import java.io.IOException; import net.minecraft.network.INetHandler; import net.minecraft.network.Packet; import net.minecraft.network.PacketBuffer; import net.minecraft.network.play.INetHandlerPlayServer; public class PacketSign extends Packet { public int xPos; public int yPos; public int zPos; public String[][] text; public PacketSign() {} public PacketSign(int x, int y, int z, String[][] text) { super(); this.xPos = x; this.yPos = y; this.zPos = z; this.text = text.clone(); } @Override public void readPacketData(PacketBuffer buf) throws IOException { this.xPos = buf.readInt(); this.yPos = buf.readShort(); this.zPos = buf.readInt(); this.text = new String[2][6]; for (int i = 0; i < 2; i ++) for (int j = 0; j < 6; j ++) text[i][j] = buf.readStringFromBuffer(64); } @Override public void writePacketData(PacketBuffer buf) throws IOException { buf.writeInt(xPos); buf.writeShort(yPos); buf.writeInt(zPos); for (int i = 0; i < 2; i ++) for (int j = 0; j < 6; j ++) buf.writeStringToBuffer(text[i][j]); } @Override public void processPacket(INetHandler net) { } } http://i.imgur.com/wNvtGZw.png[/img] MODS and MODDING TUTORIALS
March 24, 201411 yr Author Thanks a lot, this works! http://i.imgur.com/wNvtGZw.png[/img] MODS and MODDING TUTORIALS
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.