Posted February 28, 20169 yr Hello everyone, thank you for reading. I am having a bit of a dilemma with sending a data packet nine times each containing a different string to sync information on the gui textboxes in the gui on the client to the tileentities on the client and the server. The client side works fine and everything is dandy but nothing is being received on the server side I believe. any help will be appreciated! GUI Class http://pastebin.com/GAM3QZfn Tile Entity Class http://pastebin.com/sqSpge2F Packet class http://pastebin.com/nhqe7cUP Handler Class http://pastebin.com/4dVLYF2N How I register the channel? http://pastebin.com/qySazBc1 How I register the packet? http://pastebin.com/xcrA8TPu After some looking, I found that the tile entity calls for an S35PacketUpdateTileEntity and Im giving it my custom package (PacketCPU) so is that the problem and is there any way to convert it or am I sending the wrong form of data? Thanks!
February 28, 20169 yr The Side passed to SimpleNetworkWrapper#registerMessage is the side that receives and handles the packet, not the side that sends it. A client-to-server message should be registered with Side.SERVER . S35PacketUpdateTileEntity is usually returned from TileEntity#getDescriptionPacket to sync data from the server to the clients in the area surrounding the TileEntity . The client-side handler for this packet calls TileEntity#onDataPacket . This can't be used to send values from the client to the server. Please don't PM me to ask for help. Asking your question in a public thread preserves it for people who are having the same problem in the future.
February 28, 20169 yr Author The Side passed to SimpleNetworkWrapper#registerMessage is the side that receives and handles the packet, not the side that sends it. A client-to-server message should be registered with Side.SERVER . S35PacketUpdateTileEntity is usually returned from TileEntity#getDescriptionPacket to sync data from the server to the clients in the area surrounding the TileEntity . The client-side handler for this packet calls TileEntity#onDataPacket . This can't be used to send values from the client to the server. So does this mean that I cannot send data from client to server period or just not over this type of channel, and also, if those methods cannot send data from client to the server, then what ones do I use? i can find next to nothing on this... I also have a container class that i'm opening on the server side through the GUI handler. If that has to do with anything id like to know, thanks. Container Class http://pastebin.com/32E3WeVD
February 28, 20169 yr Any IMessage sent through SimpleNetworkWrapper can be either client-to-server or server-to-client. You just need to register the message using the receiving Side rather than the sending Side . The main purpose of a Container is to sync inventory contents between the server and client, but you can also use ICrafting#sendProgressBarUpdate to send two int s to the client-side Container (this calls Container#updateProgressBar on the client side). Container doesn't provide any way of sending other types of data or client-to-server data, you need to use your own packets ( IMessage s) for that. This tutorial explains SimpleNetworkWrapper in more detail. Please don't PM me to ask for help. Asking your question in a public thread preserves it for people who are having the same problem in the future.
February 28, 20169 yr Author Thanks! This was very helpful, not quite working but i'm definitely going to figure this out now!
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.