- Wed May 15, 2013 8:47 pm
#161032
Hey folks! In this post, I'll be adding Nether Quartz Ore to the Nether.
I'll be doing this based on my own suggestion, located here: http://minerealm.com/community/viewtopi ... 10&t=12606
So, let's get started.
May 15, 2013 - 9:20PM
The first thing that needs to be done is compare the terrain in the current Nether map, to a newly generated Nether using the same seed.
After throwing up the Dev server with the current MineRealm Nether, I'll be getting started by teleporting to x500/y100/z500, and taking a look.
Time to compare a newly generated Nether at the same location...
We're in luck! It's the same.
9:30PM
Now, the first thing I need to do is develop a plugin that will scan/generate a new Nether, map out the location of Nether Quartz Ore in that Nether, and then spawn the blocks in the existing Nether world.
Of course, we won't do that on the live map. Rather, we'll take down the MineRealm server, copy the Nether world to the development server, run the script, and if successful, copy the modified Nether back to the main server.
For developing the script though, we'll just be testing on an older copy of the Nether.
Starting Development
Now, although we're writing this in Java as a Bukkit plugin, it won't be used as a traditional plugin. Rather, we'll be having it so that when the server starts up, the plugin takes over the startup, does the Nether stuff, and then lets the server resume starting up. Basically, it'll lock up the server for however long it takes to complete.
First thing is setting up the workspace. I'll just copy an existing project, and rename the files as appropriate.
Then, I'll throw in some initial code...
After running a quick test, the code appears to be working properly.
Pulling the Nether Quartz Ore...
And spawn it in...
That seemed easy. Time to test it.
Completed in less than a minute
Let's login and take a look...
Success! 10:15PM.
Well, that took less than an hour, and I was hardly rushing. The next step is, of course, putting this live on the server.
Putting it live.
First thing I'll do is delete the test worlds from the development server.
Then, I'll enable a whitelist on MineRealm, shut down the server, copy the Nether, and start it back up. This will prevent people from making any changes in the map while we're doing the quartz import (although, in this situation, it won't take very long)
Time to give some warning...
Next, I'll restart the server, and then run the conversion on the development server. Then, I'll back up the current Nether, and copy over the new Nether with Nether Quartz Ore.
I won't outline this with pictures, as you already saw it on the development server in the previous screenshots. So, jumping ahead...
Time to check the Nether on the main server...
Everything seems to be working perfectly. Time to disable the whitelist, and restart the server.
Success!
Well, that was fairly easy, and only took about an hour, including writing this post while developing (although, I tried to keep the post fairly short).
Who knows though, maybe there's some crazy bug, such as half the Nether missing quartz
Hopefully you guys enjoyed this look into the development of the server. In general, for these development posts, I'll be tracking development of things that haven't yet been pushed live to the server.
However, in this case, I saw no reason to make you guys wait any longer for Nether Quartz Ore, and put the change live before this post was published.
Thanks for supporting MineRealm!
I'll be doing this based on my own suggestion, located here: http://minerealm.com/community/viewtopi ... 10&t=12606
So, let's get started.
May 15, 2013 - 9:20PM
The first thing that needs to be done is compare the terrain in the current Nether map, to a newly generated Nether using the same seed.
After throwing up the Dev server with the current MineRealm Nether, I'll be getting started by teleporting to x500/y100/z500, and taking a look.
Time to compare a newly generated Nether at the same location...
We're in luck! It's the same.
9:30PM
Now, the first thing I need to do is develop a plugin that will scan/generate a new Nether, map out the location of Nether Quartz Ore in that Nether, and then spawn the blocks in the existing Nether world.
Of course, we won't do that on the live map. Rather, we'll take down the MineRealm server, copy the Nether world to the development server, run the script, and if successful, copy the modified Nether back to the main server.
For developing the script though, we'll just be testing on an older copy of the Nether.
Starting Development
Now, although we're writing this in Java as a Bukkit plugin, it won't be used as a traditional plugin. Rather, we'll be having it so that when the server starts up, the plugin takes over the startup, does the Nether stuff, and then lets the server resume starting up. Basically, it'll lock up the server for however long it takes to complete.
First thing is setting up the workspace. I'll just copy an existing project, and rename the files as appropriate.
Then, I'll throw in some initial code...
After running a quick test, the code appears to be working properly.
Pulling the Nether Quartz Ore...
And spawn it in...
That seemed easy. Time to test it.
Completed in less than a minute
Let's login and take a look...
Success! 10:15PM.
Well, that took less than an hour, and I was hardly rushing. The next step is, of course, putting this live on the server.
Putting it live.
First thing I'll do is delete the test worlds from the development server.
Then, I'll enable a whitelist on MineRealm, shut down the server, copy the Nether, and start it back up. This will prevent people from making any changes in the map while we're doing the quartz import (although, in this situation, it won't take very long)
Time to give some warning...
Next, I'll restart the server, and then run the conversion on the development server. Then, I'll back up the current Nether, and copy over the new Nether with Nether Quartz Ore.
I won't outline this with pictures, as you already saw it on the development server in the previous screenshots. So, jumping ahead...
Time to check the Nether on the main server...
Everything seems to be working perfectly. Time to disable the whitelist, and restart the server.
Success!
Well, that was fairly easy, and only took about an hour, including writing this post while developing (although, I tried to keep the post fairly short).
Who knows though, maybe there's some crazy bug, such as half the Nether missing quartz
Hopefully you guys enjoyed this look into the development of the server. In general, for these development posts, I'll be tracking development of things that haven't yet been pushed live to the server.
However, in this case, I saw no reason to make you guys wait any longer for Nether Quartz Ore, and put the change live before this post was published.
Thanks for supporting MineRealm!
"When you do things right, people won't be sure you've done anything at all."