Jump to content

Recommended Posts

Posted

Hi! I have some problems with world saved data since it is server-side only. I have created like an in-game computer system with a lot of screens. I'm using world saved data to store the data and so all players can access it from anywhere in the world. Problems arise with getting data to display on the screen. If player edits data on a screen I can send a custom packet to server and save the data to world saved data.

How can I get the data from world saved data when I reopen the screen on client to display the data on the screen? Send packet to server -> get data -> send 2nd packet back to client?? Thanks.

Posted

You are responsible for synchronizing server data to the client for display.

https://forge.gemwire.uk/wiki/Main_Page - "the handling information" section

e.g. the vanilla MapItem serializes its SavedData map data to the client using the ClientBoundMapItemDataPacket

Boilerplate:

If you don't post your logs/debug.log we can't help you. For curseforge you need to enable the forge debug.log in its minecraft settings. You should also post your crash report if you have one.

If there is no error in the log file and you don't have a crash report then post the launcher_log.txt from the minecraft folder. Again for curseforge this will be in your curseforge/minecraft/Install

Large files should be posted to a file sharing site like https://gist.github.com  You should also read the support forum sticky post.

Posted (edited)
On 5/1/2023 at 12:43 PM, warjort said:

e.g. the vanilla MapItem serializes its SavedData map data to the client using the ClientBoundMapItemDataPacket

This is where I got stuck. I looked bunch of Vanilla classes and tried to do this myself, but now I have so many questions. The code is here. I added comments to the places in code where I am confused. (I’m not even sure what I’m doing wrong...)

Edited by RInventor7
Posted

You didn't read that the "Handling Information" section of the wiki like I told you.

If you did you would know you have to use a SimpleChannel to do networking.

Mojang's PacketListeners are hardwired (one on the client and one for each player on the server) with a fixed set of known vanilla packets. You can't create your own or add new packet types to it.

Boilerplate:

If you don't post your logs/debug.log we can't help you. For curseforge you need to enable the forge debug.log in its minecraft settings. You should also post your crash report if you have one.

If there is no error in the log file and you don't have a crash report then post the launcher_log.txt from the minecraft folder. Again for curseforge this will be in your curseforge/minecraft/Install

Large files should be posted to a file sharing site like https://gist.github.com  You should also read the support forum sticky post.

Posted
2 hours ago, warjort said:

Mojang's PacketListeners are hardwired (one on the client and one for each player on the server) with a fixed set of known vanilla packets. You can't create your own or add new packet types to it.

That made things more clear. And I am using SimpleChannel to do networking, I just don’t know where to use it. I know I have to send the clientbound packet at some point to the player when the screen is opened, but I don’t understand where I have to send it in order to get the SavedData value on client for the screen.

Code updated.

Posted (edited)

If you want help doing something and have tried to figure it out for yourself then you can ask that specific question here.

But we don't write or design your mod for you. Only you know where the data changes and who you need to send those changes to.

Edited by warjort

Boilerplate:

If you don't post your logs/debug.log we can't help you. For curseforge you need to enable the forge debug.log in its minecraft settings. You should also post your crash report if you have one.

If there is no error in the log file and you don't have a crash report then post the launcher_log.txt from the minecraft folder. Again for curseforge this will be in your curseforge/minecraft/Install

Large files should be posted to a file sharing site like https://gist.github.com  You should also read the support forum sticky post.

Posted
On 5/3/2023 at 8:58 PM, RInventor7 said:

That made things more clear. And I am using SimpleChannel to do networking, I just don’t know where to use it. I know I have to send the clientbound packet at some point to the player when the screen is opened, but I don’t understand where I have to send it in order to get the SavedData value on client for the screen.

Code updated.

do you still need help, I can guide you on how to accomplish everything. Only thing I ask is next time you help others 

Posted (edited)

https://github.com/Rinventor/SavedDataSync/blob/main/PTMSavedData.java#:~:text=(level)) {-,PTMSavedData data %3D PTMSavedData.getInstance(level)%3B,-return data.

Whenever you are calling Client side code and want the server to do something with it you must send a packet over to the server and have the server do the logic there and if needed return any data changes back to the client.

Not to be rude, but I really think you are over complicating everything and making it harder on yourself. Like mentioned above its really as simple as sending the data to server and if needed have the server send the data back to the client. Usually if the data you need to mess with is server side you don't need to send any data back.

Edited by sFXprt

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.

Guest
Unfortunately, your content contains terms that we do not allow. Please edit your content to remove the highlighted words below.
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Announcements



  • Recently Browsing

    • No registered users viewing this page.
  • Posts

    • When I first heard about Bitcoin back in 2018, I was skeptical. The idea of a decentralized, digital currency seemed too good to be true. But I was intrigued as I learned more about the technology behind it and its potential. I started small, investing just a few hundred dollars, dipping my toes into the cryptocurrency waters. At first, it was exhilarating to watch the value of my investment grow exponentially. I felt like I was part of the future, an early adopter of this revolutionary new asset. But that euphoria was short-lived. One day, I logged into my digital wallet only to find it empty - my Bitcoin had vanished without a trace. It turned out that the online exchange I had trusted had been hacked, and my funds were stolen. I was devastated, both financially and emotionally. All the potential I had seen in Bitcoin was tainted by the harsh reality that with decentralization came a lack of regulation and oversight. My hard-earned money was gone, lost to the ether of the digital world. This experience taught me a painful lesson about the price of trust in the uncharted territory of cryptocurrency. While the technology holds incredible promise, the risks can be catastrophic if you don't approach it with extreme caution. My Bitcoin investment gamble had failed, and I was left to pick up the pieces, wiser but poorer for having placed my faith in the wrong hands. My sincere appreciation goes to MUYERN TRUST HACKER. You are my hero in recovering my lost funds. Send a direct m a i l ( muyerntrusted ( @ ) mail-me ( . )c o m ) or message on whats app : + 1 ( 4-4-0 ) ( 3 -3 -5 ) ( 0-2-0-5 )
    • You could try posting a log (if there is no log at all, it may be the launcher you are using, the FAQ may have info on how to enable the log) as described in the FAQ, however this will probably need to be reported to/remedied by the mod author.
    • So me and a couple of friends are playing with a shitpost mod pack and one of the mods in the pack is corail tombstone and for some reason there is a problem with it, where on death to fire the player will get kicked out of the server and the tombstone will not spawn basically deleting an entire inventory, it doesn't matter what type of fire it is, whether it's from vanilla fire/lava, or from modded fire like ice&fire/lycanites and it's common enough to where everyone on the server has experienced at least once or twice and it doesn't give any crash log. a solution to this would be much appreciated thank you!
    • It is 1.12.2 - I have no idea if there is a 1.12 pack
  • Topics

×
×
  • Create New...

Important Information

By using this site, you agree to our Terms of Use.