Inactive [FIX] OneTimeRenewal 0.4 - Chunks will get all new features of MC updates (only run once)[1185-1597]

Discussion in 'Inactive/Unsupported Plugins' started by cuco, Jun 19, 2011.

  1. Offline

    cuco

    Sorry, my English is not very good, but I hope you will unterstand all you need to know ;-)

    Plugin: OneTimeRenewal
    Version: v0.4

    This plugin will regenerate all chunks which haven't been modified by users so they will include all new features of Beta 1.6 like tall grass, ... If your chunks have been generated in Minecraft Beta, they will be nearly the same as before but include the new feautures. But attention: If you have chunks generated in pre-Beta (Minecraft Alpha) you will get sliced chunks or your terrain will look very different than before.

    It has to be run only one time at server start! It will do its regeneration then and after that it could/should be deleted. No CPU-consumption during gameplay!

    Some of the code is based on TerrainRenewal by nickrak which does nearly the same - but it does it always during the gameplay and needs much CPU. My plugin does it one time after the start of your server. Then it could be deleted and needs no CPU.

    License will be Creative Commons 3.0: Attribution, Non-commercial, Share-Alike according to the original codebase.
    [​IMG]

    Installation:
    1. Make a backup of your world!
    2. Download the plugin & extract all included files
    3. Copy the jar and the included directory into your craftbukkit plugins directory
    4. If you want: change the file "materials.list" (to say what is man-made or not)
    5. Change the file "configuration" to set which chunks should be regenerated. The format is Xmin,Xmax,Ymin,Ymax. If you set them too small, not all of your map will be regenerated. If you set them too big, it will take a little longer , but it will NOT generate additional (new) chunks. If you don't know how to set it: go to the point of your map which is the most far away from spawn. Press F3 and write down your coordinates. Divide them by 16 and now you have the chunkcoordinates where you are standing. Maybe add a little bit to be sure. Now fill them into the file "configuration". Maximum is 784426 (after that the farlands are beginning). But don't try numbers as big as that or it has to check 2,461,299,735,609 chunks for updates!
    6. Start the server
    7. Wait for regeneration (on huge maps this could take some time!)
    8. Stop the server
    9. Delete all files of my plugin
    10. Done :) Enjoy the new feautures!
    Warning: It may destroy your buildings which seem not to be man made (if you build something only out of not crafted materials (dirt, sand, stone) without any use of torches or other crafted materials). Backup your world before running it!

    Features:
    • Test all chunk wether it is modified or not
    • Regenerates all unmodified chunks
    • Include all new features in this regnerated chunks
    • Config-File to set materials which must be included in a chunk to say it is modified
    • Config-File to set how many (or which) chunks should be regenerated
    • Checks whether it had run before and then skips the regeneration
    Download the plugin: http://tobby.eu/mc/plugins/OneTimeRenewal/OneTimeRenewal0.4.zip
    Source Code included in JAR-File

    Changelog:
    Version 0.4
    • Checks whether it had run before and then skips the regeneration
    • Compiled and tested with CB #1060
    Version 0.3
    • Massive speed improvement if it checks chunks which do not exist. You can now set bigger values in your configuration file without such a very big increasement of time like in v0.2.
    • Uses chunk unloading to save much RAM - now it is possible to run it without having very much memory on big maps
    • Better status display
    Version 0.2
    • Added configuration file to set the range for regeneration
    • Removed hardcoded range-limits
    • Fixed status-messages (now they display how many chunks have been regenerated and how many will follow)
    • Changed texts from German to English
    Version 0.1
    • Release
    Hope you like my plugin. It is my first plugin and it is my first Java program ever. So it could be bad coding :) Feel free to take a look at the code and say what I can do better.
     
    alex3yoyo and ssechaud like this.
  2. Offline

    cuco

    Like I said 3 posts above yours: It works but because of the new terrain-generation-algorithm it will create many sliced chunks.
     
  3. Offline

    happypumkin

    So we can't just install and run the plugin? We HAVE to find the coordinates?
     
  4. Offline

    cuco

    Yes you HAVE to find the coordinates. If you set them too small your world will not be completely regenerated. If you set them too big it will take a little longer and you will get some unnecessary 8kb files in your map-folder - you can simply delete them.
     
  5. Offline

    Insanehero

    :08:42 [INFO] OneTimeRenewal 0.4 enabled
    18:08:42 [INFO] regenerating world: smpLocation{world=CraftWorld{name=smp},x=-1831.0,y=75.0,z=78.0,pitch=0.0,yaw=0.0}
    18:08:42 [INFO] OneTimeRenewal has to check 39900 chunks
    18:08:42 [INFO] Regnerated 0 and skipped 0 chunks with man-made materials
    18:08:42 [INFO] regenerating world: world_netherLocation{world=CraftWorld{name=world_nether},x=43.0,y=64.0,z=-19.0,pitch=0.0,yaw=0.0}
    18:08:42 [INFO] OneTimeRenewal has to check 39900 chunks
    18:08:42 [INFO] Regnerated 0 and skipped 0 chunks with man-made materials
    18:08:42 [INFO] regenerating world: SpawnLocation{world=CraftWorld{name=Spawn},x=244.0,y=64.0,z=256.0,pitch=0.0,yaw=0.0}
    18:08:42 [INFO] OneTimeRenewal has to check 39900 chunks
    18:08:42 [INFO] Regnerated 0 and skipped 0 chunks with man-made materials



    Did this for cordinates in config 101, 0, 200, -200

    Not sure why it won't work...
     
  6. Offline

    cuco

    I didn't think about mixing min and max values! I can fix that to get this working, too... But you can fix it, too!
    It is:
    Xmin,Xmax,Ymin,Ymax
    and the min value has to be smaller than the max value. So try
    0, 101, -200, 200
     
  7. Offline

    Insanehero

    Thanks!
    I'll try that now. It will regen the same area that I want right?
     
  8. Offline

    cuco

  9. Offline

    Insanehero

    Woops, I got the cordinates messed up... Sorry bout that.

    Its actually 101, 200, 0 , -200, Which I get the same kind of error with.
    Code:
    [INFO] OneTimeRenewal 0.4 enabled
    20:34:48 [INFO] regenerating world: smpLocation{world=CraftWorld{name=smp},x=-1831.0,y=75.0,z=78.0,pitch=0.0,yaw=0.0}
    20:34:48 [INFO] OneTimeRenewal has to check -19900 chunks
    20:34:48 [INFO] Regnerated 0 and skipped 0 chunks with man-made materials
    20:34:48 [INFO] regenerating world: world_netherLocation{world=CraftWorld{name=world_nether},x=43.0,y=64.0,z=-19.0,pitch=0.0,yaw=0.0}
    20:34:48 [INFO] OneTimeRenewal has to check -19900 chunks
    20:34:48 [INFO] Regnerated 0 and skipped 0 chunks with man-made materials
    20:34:48 [INFO] regenerating world: SpawnLocation{world=CraftWorld{name=Spawn},x=244.0,y=64.0,z=256.0,pitch=0.0,yaw=0.0}
    20:34:48 [INFO] OneTimeRenewal has to check -19900 chunks
    20:34:48 [INFO] Regnerated 0 and skipped 0 chunks with man-made materials
    
     
  10. Offline

    ghezra

    Cuco, What Insane really *meant* to try was 101, 200, -200, 0

    This technically should apply over Xmin= 101, Xmax = 200, Ymin (z) = -200, ymax (z) = 0,

    And this worked. It was that we were placing the coords out of order, but not in the X but in the Z. We were doing 101, 200, 0, -200. Because in my mind -200 was larger than 0 :)

    Thanks for the responses!
     
  11. Offline

    ssechaud

    Is there no way to make this automatically detect the size of the world and to check that, rather than having to specify co-ordinates?
     
  12. Offline

    Etarus

    does it regenerate chunks wich are explored but not modifyed by players? Cause i sexplored many of my map, but don't build anything anywhere.
     
  13. Offline

    cuco

    I am not a very good programmer in Java and Bukkit. Maybe there is a way, but it is not easy. So i couldn't implement it yet.

    That's what it does - it regenerates explored but not modified chunks. :)
     
  14. Offline

    Yoshinat0r

    It really amazes me how you are the only person who is maintaining such a useful plugin as this. Nobody else in the entire minecraft community cares to make a program that does this. Do people really not mind just scrapping their entire world and starting from scratch when new versions of the game come out? I have put so much work into my world, if I just lost it all, I wouldn't even be able to gather up the motivation to play this game again.

    On another note, I have yet to try this in 1.8, but regardless of the sliced chunks, I am very grateful to at least have some kind of option available to me. Thank you for creating a plugin with such a useful feature as this, a feature that really should just be implemented into the game itself by the developers, but won't because people don't think of the blatantly obvious problems that break the playability of this game.
     
    Tanite likes this.
  15. Offline

    Flextt

    So basically this plugin mainly regenerates the overworld, if a chunk is left untouched by players? How does it work? What does it do? I do not really get the whole "chunk regeneration" thingy, even though it sounds extremely useful.

    BTW: coincidentally i found on my 1.5 map the corner (! not edge) to the 1.8 terrain generator, which looks really really funny, because a temperate biome switches into a swamp biome. Wouldn't it be cool as a feature, if the chunks on the edges & corners from old world to new world generation are able to be merged, creating a smooth change?
     
  16. Offline

    Ziden

    would this work to regne the map to 1.8 or 1.9 for example ?
     
  17. Offline

    cuco

    I think so. Let's see what I can do when 1.9 has been released.
     
  18. Offline

    darkwarriors

    i used this plugin for every new versions, could be very usefull if u can add one features:

    detect worldguard regions and dont regenerate that region could be possible? i mean that so even if player have build and destroy in a chunk it can be regenerate for new version but protected build can remain intact!

    ( if it hard to autodect region in chunks, could be possible also to add coordinates of WG regions in config file and plugin skip only that coordinates and regenerate all the other chunks! )

    thanks alot for theese plugin.
     
  19. Offline

    Bakuhatsu

    Do you possible have a plan to fix so the border will get smoothened out between old vs new chunk?
    Because... I've noticed that my world world would be pretty crowded of such hard edges then.

    Also, is there any setting to make it ignore chunks around the chunk, aka... let's say it finds a sign.. which ofc is user made, and it does not only skip that chunk but also in a radius around it with a user specified value? If not, possible to add?
     
  20. Offline

    cuco

    Many things are possible - but I don't have much time at the moment. Until christmas I have to work very hard at Airbus to make the A350 fly. ;-)
    Detect WorldGuard-Regions would be possible.
    Smoothing the borders is much work and will never be very beautiful, but better than now. But it's possible.
    But because of having not much time I can only maintain the plugin at this moment and so I cant't add any new features in the next weeks.
    I will test the plugin with a new recommend build in the next days - thats all I can do for now, sorry!
     
  21. Offline

    Emiya Shirou

    I don't understand this...

    especially this

    Can you write it step by step tutorial for a person who isn't good at math?
     
  22. Offline

    dakoslug

    Hopefully you will be updating this for 1.0.0.?
     
  23. Offline

    cuco

    Yes I will do this when there is a RB.
     
  24. Offline

    DaddyCool64

    Works fine up to CB 1550
     
    cuco likes this.
  25. Offline

    cuco

    Thanks for the test!
     
  26. Offline

    cuco

    Hi

    Tested it with #1597 (1.0.1-R1). It works but not very good! I will try to fix some problems in the next time.
     
  27. Offline

    G1R Productions

    fix it for 1.0.0 please.

    Code:
    19.12 01:42:49 [Server] INFO     at net.minecraft.server.ThreadServerApplication.run(SourceFile:457)
    19.12 01:42:49 [Server] INFO     at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:402)
    19.12 01:42:49 [Server] INFO     at net.minecraft.server.MinecraftServer.init(MinecraftServer.java:168)
    19.12 01:42:49 [Server] INFO     at net.minecraft.server.MinecraftServer.a(MinecraftServer.java:338)
    19.12 01:42:49 [Server] INFO     at net.minecraft.server.MinecraftServer.t(MinecraftServer.java:351)
    19.12 01:42:49 [Server] INFO     at org.bukkit.craftbukkit.CraftServer.enablePlugins(CraftServer.java:170)
    19.12 01:42:49 [Server] INFO     at org.bukkit.craftbukkit.CraftServer.loadPlugin(CraftServer.java:187)
    19.12 01:42:49 [Server] INFO     at org.bukkit.plugin.SimplePluginManager.enablePlugin(SimplePluginManager.java:280)
    19.12 01:42:49 [Server] INFO     at org.bukkit.plugin.java.JavaPluginLoader.enablePlugin(JavaPluginLoader.java:968)
    19.12 01:42:49 [Server] INFO     at org.bukkit.plugin.java.JavaPlugin.setEnabled(JavaPlugin.java:188)
    19.12 01:42:49 [Server] INFO     at de.tobby.OneTimeRenewal.OneTimeRenewal.onEnable(OneTimeRenewal.java:135)
    19.12 01:42:49 [Server] INFO     at org.bukkit.craftbukkit.CraftWorld.regenerateChunk(CraftWorld.java:185)
    19.12 01:42:49 [Server] INFO     at org.bukkit.craftbukkit.generator.NormalChunkGenerator.getOrCreateChunk(NormalChunkGenerator.java:39)
    19.12 01:42:49 [Server] INFO     at net.minecraft.server.ChunkProviderGenerate.getOrCreateChunk(SourceFile:223)
    19.12 01:42:49 [Server] INFO     at net.minecraft.server.WorldChunkManager.a(SourceFile:142)
    19.12 01:42:49 [Server] INFO     at net.minecraft.server.WorldChunkManager.a(SourceFile:146)
    19.12 01:42:49 [Server] INFO     at net.minecraft.server.IntCache.a(SourceFile:55)
    19.12 01:42:49 [Server] INFO     at java.util.ArrayList.addAll(ArrayList.java:530)
    19.12 01:42:49 [Server] INFO     at java.util.ArrayList.toArray(ArrayList.java:329)
    19.12 01:42:49 [Server] INFO     at java.util.Arrays.copyOf(Arrays.java:2219)
    19.12 01:42:49 [Server] INFO java.lang.OutOfMemoryError: GC overhead limit exceeded
    19.12 01:42:49 [Server] SEVERE Error occurred while enabling OneTimeRenewal v0.4 (Is it up to date?): GC overhead limit exceeded
    19.12 01:42:48 [Server] SEVERE     at net.minecraft.server.NetworkAcceptThread.run(SourceFile:35)
    19.12 01:42:48 [Server] SEVERE     at java.net.ServerSocket.accept(ServerSocket.java:490)
    19.12 01:42:48 [Server] SEVERE     at java.net.ServerSocket.implAccept(ServerSocket.java:514)
    19.12 01:42:48 [Server] SEVERE     at java.net.Socket.setImpl(Socket.java:493)
    19.12 01:42:48 [Server] SEVERE     at java.net.SocksSocketImpl.<init>(SocksSocketImpl.java:54)
    19.12 01:42:48 [Server] SEVERE     at java.net.PlainSocketImpl.<init>(PlainSocketImpl.java:45)
    19.12 01:42:48 [Server] SEVERE     at java.net.AbstractPlainSocketImpl.<init>(AbstractPlainSocketImpl.java:44)
    19.12 01:42:48 [Server] SEVERE     at java.net.SocketImpl.<init>(SocketImpl.java:44)
    19.12 01:42:48 [Server] SEVERE     at java.lang.Object.<init>(Object.java:37)
    19.12 01:42:48 [Server] SEVERE     at java.lang.ref.Finalizer.register(Finalizer.java:90)
    19.12 01:42:48 [Server] SEVERE java.lang.OutOfMemoryError: GC overhead limit exceeded
    19.12 01:42:48 [Server] SEVERE Exception in thread "Listen thread"
    
    EDIT by Moderator: merged posts, please use the edit button instead of double posting.
     
    Last edited by a moderator: May 16, 2016
  28. Offline

    sagethor

    @cuco
    This plugin is always up to date with the latest build of bukkit right? Since it uses native regeneration?

    Also, does it work with custom Spoutblocks? Thanks!
     
  29. Offline

    cuco

    Yes, it uses native regeneration so it is always up to date with newest regeneration algorithm.
    But actually it has some (known) bugs. I am working on that. The material-list is not up to date. And is has problems with big world and small RAM.
    I don't know whether it works with spoutblocks, because I have never heard about that. What is a spoutblock?
     
  30. Offline

    the_merciless

    Any chance u could make an installation video when its ready? im a little dumb and dont understand the co-ordinates bit.
     
  31. Offline

    G1R Productions

    Does this still work? Anyone know?
     

Share This Page