Johni0702 / bobby

GNU General Public License v3.0
216 stars 57 forks source link

Have Bobby use the already cached server data while in Replay Recordings #260

Open fragger57 opened 8 months ago

fragger57 commented 8 months ago

As far as I'm aware, the way it works now with utilizing cached data in Replay Mod recordings, is it uses a sperate cache located in the unknown folder within in the .bobby folder. The cached server data, on the other hand, is saved in a folder with the server ip name.

My proposal is to have Bobby utilize the already cached server data that is already available in the folder with the server ip name while you are in a Replay Mod recording of said server, rather than having Bobby create a whole separate cache for Replay recordings.

This would be a huge benefit, because you wouldn't have to rely on getting all new cached world data for Replay Recordings, where currently the process for this is to fly around the world while you're recording with Replay Mod in order to have the chunks you want loaded into the Replay records of the server. Instead you would just be able to hop into a Replay recording and it would automatically utilize the already cached data. This would also help save on disk space, as you wouldn't be essentially saving duplicate data.

Replay Mod saves the server ip within it's recordings, so the potential solution to this is to just have Bobby check for a folder within the .bobby folder, that has the same name as the server ip that was saved in the Replay recording. If it finds a folder with said name, then it will check to see if there is a folder with the matching world seed of the recording, then use said cached data. If it does not find any folders fitting those requirements, then it'll create new folders as needed, with said naming requirement, and start saving the world cache.

Right now the best work around to this is to just copy the cached server data and pasting it into the unknown folder, so you have the exact same cached data, but it would be nice if Bobby would automatically use the already existing data, so you don't have to do that.

Johni0702 commented 6 months ago

The primary two reasons this hasn't been implemented:

  1. ReplayMod does not provide any way for Bobby to easily get that info, primarily because ReplayMod doesn't currently have an API at all.
  2. The replay may have been recorded in the past, so using the server cache while in the replay would i) show stuff that wasn't yet present during the replay, and ii) overwrite the up-to-date data in the cache with old data from the replay.