It's a java port of a key value database I'd worked on a while ago to solve the same problem. I just found your project, so I haven't taken a good look at it yet, but maybe my project could be of some use? Combine your code to read / write the existing level format with my database code?
Wow, that's pretty impressive there. Your code really seems to work more like a real filesystem then mine, which is quite neat. Mine is quite simple in comparison, I'm about to put out v3 here in a day or so and it will include what I hope will be the finished version of my format at least. If you need help integrating your code into minecraft though, I can definitely help you with that. :smile.gif:
Thank you! That's very nice of you to say (it's not really that impressive though, I promise :smile.gif:
If you need help integrating your code into minecraft though, I can definitely help you with that. :smile.gif:
So far I only have a vague understanding of the minecraft level format, and I have no idea how minecraft mods work, so anything you have would be helpful. If you're willing to let me look at the code behind your mod, that would help a lot. (You'd have to be willing to let some of it end up in a MIT licensed project, though)
Otherwise, I was just going to start with some minecraft world files, the minecraft wiki, and hexdump. Anything past that would be helpful :smile.gif:
Thank you! That's very nice of you to say (it's not really that impressive though, I promise :smile.gif:
If you need help integrating your code into minecraft though, I can definitely help you with that. :smile.gif:
So far I only have a vague understanding of the minecraft level format, and I have no idea how minecraft mods work, so anything you have would be helpful. If you're willing to let me look at the code behind your mod, that would help a lot. (You'd have to be willing to let some of it end up in a MIT licensed project, though)
Otherwise, I was just going to start with some minecraft world files, the minecraft wiki, and hexdump. Anything past that would be helpful :smile.gif:
Wait, are you trying to decode the actual minecraft .dat files? My code simply reads the minecraft files into a byte array and stores them inside my container. They are still in Minecrafts NBT format inside my container technically, I'm just archiving each one. If you want to actually go further and dissasemble the .dat files themselves, I'm afraid I won't be much help. If you havn't already done so, read this: http://www.minecraftwiki.net/wiki/Alpha_Level_Format
Well, I was planning on reading the full minecraft level format, but it looks like there are a few libraries out there to do just that, and even if not it doesn't look like it will take me very long to do. After that, it would be neat to try to do the same thing you did and patch minecraft itself.
I googled a bit about modding, but didn't come up with many specifics about tying in to the save / load system. Any help there would be welcome.
An answer of "google harder" is also acceptable :smile.gif:
As someone who knows how long WinRAR takes to back up 50k+ files (especially with -s), and I back up at least once every time I play - this is exactly what I was looking for.
Thanks for making this happen! Look forward to your future works :smile.gif:
v0.3 is out, check the change log in the original post for what it does. :smile.gif: Note that this will probably be the last release until Notch releases the October 31 Halloween update, unless any major bug is immediately found in this version. I'll try to get a MCFS integrated into the minecraft update as soon as it comes out.
Quote from MeltingPoint »
As someone who knows how long WinRAR takes to back up 50k+ files (especially with -s), and I back up at least once every time I play - this is exactly what I was looking for.
Thanks for making this happen! Look forward to your future works :smile.gif:
Your very welcome :smile.gif: I'm very glad people are making use of this, makes me feel like this hasn't been a waste of time.
Why can't I import my world files that are 25 and 48 mb in size? It'd be great if I can get this solved sometime tonight. Please note: I imported them all properly, and a 2 mb world worked fine. I need the 48 mb one for this upcoming week, the 25 mb one I technically can dump.
Why can't I import my world files that are 25 and 48 mb in size? It'd be great if I can get this solved sometime tonight. Please note: I imported them all properly, and a 2 mb world worked fine. I need the 48 mb one for this upcoming week, the 25 mb one I technically can dump.
Hey, can I get a little more information on why exactly it wont import? is it failing with a error or does it just get stuck on the import?
it imports fine, then I place it in my saves folder - the small one works but the 2 big files aren't being recognized in my game
Hmm, I take it minecraft shows them as being "-empty-" when you load it up? This usually means that minecraft was unable to read the level.dat file. You have tried these worlds in regular minecraft and they load up fine I take it? It's possible that there could still be a bug in my import where its not reading level.dat for whatever reason. Il play with it a bit to see if I can reproduce your issue, but in the meantime make sure your level.dat is indeed present and greater then 0 in size.
It does show as empty and works in the regular minecraft, it might be do to a file limit since I saw the container was on default 20mb in size?
Hmm, the container should grow past 20mb if it runs out of room. I just made 20mb default size to avoid filesystem fragmentation due to the container repeatedly growing in small bits. But anyway, by chance were these levels used in a multiplayer at any point? The data for each player is stored in the same general place in the container as the level.dat, so I'm just wondering if I need to look through and make sure level.dat isn't being overwritten or something by player data. I'm still looking through my code a bit to see if I don't stumble upon something stupid I did or something that may be causing your issue. :smile.gif:
I am always tinkering! I screw things up many times! WTH it feels good.
I cannot talk precisely/concisely straight to the point :| I take twists and turns make things complex just to tell a simple thing, it's my thing but again WTH I am open minded
It does show as empty and works in the regular minecraft, it might be do to a file limit since I saw the container was on default 20mb in size?
Hmm, the container should grow past 20mb if it runs out of room. I just made 20mb default size to avoid filesystem fragmentation due to the container repeatedly growing in small bits. But anyway, by chance were these levels used in a multiplayer at any point? The data for each player is stored in the same general place in the container as the level.dat, so I'm just wondering if I need to look through and make sure level.dat isn't being overwritten or something by player data. I'm still looking through my code a bit to see if I don't stumble upon something stupid I did or something that may be causing your issue. :smile.gif:
The container does grow past 20 mb, oddly though it's only like 30-35 mb for my near 50 mb world and such, never used in multiplayer.
It does show as empty and works in the regular minecraft, it might be do to a file limit since I saw the container was on default 20mb in size?
Hmm, the container should grow past 20mb if it runs out of room. I just made 20mb default size to avoid filesystem fragmentation due to the container repeatedly growing in small bits. But anyway, by chance were these levels used in a multiplayer at any point? The data for each player is stored in the same general place in the container as the level.dat, so I'm just wondering if I need to look through and make sure level.dat isn't being overwritten or something by player data. I'm still looking through my code a bit to see if I don't stumble upon something stupid I did or something that may be causing your issue. :smile.gif:
The container does grow past 20 mb, oddly though it's only like 30-35 mb for my near 50 mb world and such, never used in multiplayer.
Hmm, ok that narrows it down then. Its got to be something wrong with the import function. It must be dieing half way through for some reason (even though it says success). I wonder if its encountering a filename of some kind that it doesn't know how to handle. It should be able to handle any standard minecraft .dat file though. Let me look at the import function for a bit. Il throw in some junk files into one of my world folders as well to see what it does in regards to that.
All seems to be working well! The import app could be a little more intuitive, but other then that a great mod. Do you by chance know of any mapper that supports/plans to support the .mcworld format?
Wow, that's pretty impressive there. Your code really seems to work more like a real filesystem then mine, which is quite neat. Mine is quite simple in comparison, I'm about to put out v3 here in a day or so and it will include what I hope will be the finished version of my format at least. If you need help integrating your code into minecraft though, I can definitely help you with that. :smile.gif:
MCFS - Minecraft Single File Save System.
BlockOff, a in-game block placement offsetting tool.
Thank you! That's very nice of you to say (it's not really that impressive though, I promise :smile.gif:
So far I only have a vague understanding of the minecraft level format, and I have no idea how minecraft mods work, so anything you have would be helpful. If you're willing to let me look at the code behind your mod, that would help a lot. (You'd have to be willing to let some of it end up in a MIT licensed project, though)
Otherwise, I was just going to start with some minecraft world files, the minecraft wiki, and hexdump. Anything past that would be helpful :smile.gif:
Wait, are you trying to decode the actual minecraft .dat files? My code simply reads the minecraft files into a byte array and stores them inside my container. They are still in Minecrafts NBT format inside my container technically, I'm just archiving each one. If you want to actually go further and dissasemble the .dat files themselves, I'm afraid I won't be much help. If you havn't already done so, read this: http://www.minecraftwiki.net/wiki/Alpha_Level_Format
MCFS - Minecraft Single File Save System.
BlockOff, a in-game block placement offsetting tool.
I googled a bit about modding, but didn't come up with many specifics about tying in to the save / load system. Any help there would be welcome.
An answer of "google harder" is also acceptable :smile.gif:
That tells me, though, that that's the best guide I'm gonna get, which saves me from having to keep looking :smile.gif:
Decompiling it is.
Thanks for making this happen! Look forward to your future works :smile.gif:
Your very welcome :smile.gif: I'm very glad people are making use of this, makes me feel like this hasn't been a waste of time.
MCFS - Minecraft Single File Save System.
BlockOff, a in-game block placement offsetting tool.
Hey, can I get a little more information on why exactly it wont import? is it failing with a error or does it just get stuck on the import?
MCFS - Minecraft Single File Save System.
BlockOff, a in-game block placement offsetting tool.
Hmm, I take it minecraft shows them as being "-empty-" when you load it up? This usually means that minecraft was unable to read the level.dat file. You have tried these worlds in regular minecraft and they load up fine I take it? It's possible that there could still be a bug in my import where its not reading level.dat for whatever reason. Il play with it a bit to see if I can reproduce your issue, but in the meantime make sure your level.dat is indeed present and greater then 0 in size.
MCFS - Minecraft Single File Save System.
BlockOff, a in-game block placement offsetting tool.
Hmm, the container should grow past 20mb if it runs out of room. I just made 20mb default size to avoid filesystem fragmentation due to the container repeatedly growing in small bits. But anyway, by chance were these levels used in a multiplayer at any point? The data for each player is stored in the same general place in the container as the level.dat, so I'm just wondering if I need to look through and make sure level.dat isn't being overwritten or something by player data. I'm still looking through my code a bit to see if I don't stumble upon something stupid I did or something that may be causing your issue. :smile.gif:
MCFS - Minecraft Single File Save System.
BlockOff, a in-game block placement offsetting tool.
I cannot talk precisely/concisely straight to the point :| I take twists and turns make things complex just to tell a simple thing, it's my thing but again WTH I am open minded
Yup, the download includes a patch for the minecraft_server.jar file that will mod it to use MCFS.
MCFS - Minecraft Single File Save System.
BlockOff, a in-game block placement offsetting tool.
The container does grow past 20 mb, oddly though it's only like 30-35 mb for my near 50 mb world and such, never used in multiplayer.
Hmm, ok that narrows it down then. Its got to be something wrong with the import function. It must be dieing half way through for some reason (even though it says success). I wonder if its encountering a filename of some kind that it doesn't know how to handle. It should be able to handle any standard minecraft .dat file though. Let me look at the import function for a bit. Il throw in some junk files into one of my world folders as well to see what it does in regards to that.
MCFS - Minecraft Single File Save System.
BlockOff, a in-game block placement offsetting tool.
MCFS - Minecraft Single File Save System.
BlockOff, a in-game block placement offsetting tool.