NetherUpdater v0.8.0

upgrade pre-1.16 nether to 1.16 and keep the building made by player.

  1. ShirosakiMieru
    Native Minecraft Version:
    1.16
    Tested Minecraft Versions:
    • 1.15
    • 1.16
    Source Code:
    https://github.com/ShirosakiMieru/NetherUpdater
    Contributors:
    ShirosakiMieru
    Languages Supported:
    en-US / zh-CN
    Minecraft 1.16 Nether World Updater

    ENGLISH | 中文

    This plugin can help you upgrade pre-1.16 world to 1.16 nether and keep the building made by player.

    You can click this link for better browsing experience:

    https://github.com/ShirosakiMieru/NetherUpdater

    Please use Github issue tracker for reporting bugs :)


    Principle
    This plugin will generate a new nether world as a template, and compare with old world, identify and keep player's buildings.

    This plugin has 2 modes. you can click HERE for more details.

    Rendering
    Note: As the improvement of the algorithm may produce different results, these screenshots are for reference only.


    [​IMG]

    [​IMG]

    [​IMG]



    For more details, see HERE.


    !! WARNING:This plugin has not been fully tested, please backup the data before use !!

    !! This plugin is an early development version and does not guarantee that all functions can be run normally !!

    Requirements
    1. (Latest build) Spigot 1.15 (for analyze) / 1.16
    2. Java 8 and above
    3. extra disk space
      • It's recommended that the remaining space is equal (or more than) to the current size of the nether world.
      • Note: If you use analyze , additional 50MB of disk space for every 10,000 blocks (100*100) is required.

    Way of working

    There are two update options for this plugin. If you don’t want to know the specific technical details, you can directly look at the final selection method in this paragraph:

    1. Analyze & Upgrade
    This solution is first analyzed at 1.15 and records world changes.
    Then skip these changes during the 1.16 upgrade to keep the record of player's activity.

    Advantage:
    1. It can keep all the changes of the player completely.
    Disadvantage:
    1. The analysis requires in 1.15
    2. Requires additional disk space for storing templates and change records
      • The template world is roughly 40~90% of the space occupied by the current nether world
      • Change record number of blocks required (radius^2) * 0.0025MB space
        • Example: 500*500 blocks, about 1.2GB disk space
        • Ungenerated blocks will be filtered, so the actual space will only be smaller than this number.
    3. Need extra time for analysis (1000 blocks may take 250 seconds) (depending on the analysis speed)
    4. Need additional RAM to load records
      • RAM needs about 1.5 times the change record
    2. Direct Upgrade
    This solution uses an algorithm to identify areas where players are active and skips them. This saves analysis time and disk space, but may overwrite player buildings incorrectly.

    Advantage:
    1. Can upgrade at 1.16.2
    2. No analysis required, saving time and disk space
    3. No additional RAM to store analysis data
    Disadvantage:

    Due to the limitations of the algorithm, a certain deviation may occur, the specific situation is mainly as follows:

    1. regenerate player buildings incorrectly
      • E.g:
        1. built only with Netherrock
        2. Some areas dug by players may be restored.
    2. Update may be less accurate
    This is because there is no way to check if the air is a change caused by the player.

    Usually it will not destroy obvious artificial buildings and containers made by players.

    Just tell me how to choose?
    If you:
    1. Upgraded to 1.16
    2. Not enough disk space
    3. Don't want to spend extra time.
    You can choose: Direct Upgrade

    Or:
    1. Make sure that player actions are fully preserved
    2. Have enough time/ram/disk space
    You can choose: Analyze and upgrade

    Manual
    1. Backup your data (VERY IMPORTANT!)
    2. (Optional) analyze the map in 1.15 (analyze)
      • will generate a world_nether_115template map
      • results will be saved in the /plugin/UpdateNether/.
    3. Start the server using version 1.16.2
    4. Use the update command to upgrade map in 1.16.2
      • will generate a world_nether_116template map
      • you can attach the data if you performed the analysis in 1.15
    After the update , you can delete all ``template'' maps and analysis results.

    Commands
    Command: /updatenether or /updne

    args:


    radius is the radius of the Chunk.

    16 means check nearby (16*2-1)^2 961 blocks (-256 ~ +256 blocks) will be processed.

    tick refers to how many ticks are executed at intervals, it is recommended to set according to the processing time of each block.

    If it is a server dedicated for analysis, it can be set to 1 .

    If tps drops too low, you can increase this value.


    Analyze (in 1.15)

    NOTE: only 1.15 server can run this command


    NOTE: The time of analyze mode depends on the number of Chunks that have been generated in the range. The speed in the early stage may seem slow, but it will accelerate the skipping of ungenerated Chunks later.

    625 Chunks (10000 blocks) with a radius of about 4 hours (reference)




    Specify the radius and wait how many ticks to next analyze. (by Player)

    /updne analyze <radius> <tick>

    Specify the starting coordinates (CHUNK coordinates)

    /updne analyze <world> <chunkX> <chunkY> <radius> <tick>

    Pause task (it will be automatically suspended when shutting down the server)

    /updne analyze pause

    resume

    /updne analyze resume <tick>

    Upgrade (1.16.2)
    Specify the radius and wait how many ticks to next analyze. (by Player)

    /updne upgrade <radius> <tick>

    Specify the starting coordinates (CHUNK coordinates)

    /updne upgrade <world> <chunkX> <chunkY> <radius> <tick>

    use the analyzed data as filter :

    e.g: use world_nether_200629_analyze.db as filter data:

    this data will be saved in /plugin/NetherUpdater/xxx.db

    /updne upgrade world_nether 0 0 10 5 world_nether_x0_z0_analyze.db

    Tips
    Some Tips:
    1. backup your data!
    2. a 1.15 map for analysis is required, You can update to 1.16 after backing up/analyzing the map.
      • This method may cause accidents in some special cases (for example, using netherrock to build a house may be destroyed)
    3. You can analyze only a certain area, and then manually update the corresponding block, which can greatly reduce the analysis time.
    4. (WIP) If you think there is a problem with the automatic upgrade, you can use the rollback function to roll back the specified range of blocks to the version before the upgrade. -You need to have a 1.15 original map as a rollback template
    LICENSE
    MIT

    Thanks
    感谢 Timory时忆服务器 的 Sealoong ,提供了高效的区块变化记录存储算法。

    感谢 喵窝&毛玉线圈 的 UpdateAquatic 项目 ,提供了基于模板(template)更新的思路。

    感谢 毛玉线圈 服务器 的 langua 姐姐,提供了一些思路,加快了开发进度。

    Please use Github issue tracker for reporting bugs :)

Recent Reviews

  1. AbwesenderMensch
    AbwesenderMensch
    5/5,
    Version: v0.7.1
    Haven't tested now, but it seems to be an plugin which has alot amount of need for much of people. Sadly it's such unknown.