Brettflan / WorldBorder

Bukkit plugin for maintaining borders for your worlds to limit their sizes, as well as generating missing chunks or trimming excess chunks.
https://www.spigotmc.org/resources/worldborder.60905/
BSD 2-Clause "Simplified" License
139 stars 210 forks source link

1.15 Fill and Trim not working correctly #168

Open Tsoccerguy3 opened 4 years ago

Tsoccerguy3 commented 4 years ago

wb_fill_1 15

Commands issued on new 1.15 map /wb shape round /wb set 500 500 /wb fill /wb fill confirm

Brettflan commented 4 years ago

If the commands returned no errors and indicated success in the server log, then they were successful, regardless of whether Dynmap managed to properly update or not.

Tsoccerguy3 commented 4 years ago

Just testing 1.15 plugins for stability .Ill , compile the latest Dynmap and make a fresh world . Paper should on first run , create a 10 x 10 chunk world , i will run the /fill command to see if any chunks are missed .I will use dinerbones chunk tool to identify the missing area on the Dynmap and look if the *.mca files were generated in the region folder.

Tsoccerguy3 commented 4 years ago

3D Flat I checked the region folder and those chunks are missing and there are chunks generating outside the border. Noi errors . The Black area in the north are the missing chunks and can be seen on the 3D render . There are extra chunks that were generated outside the border .

Tsoccerguy3 commented 4 years ago

mistakes

Tsoccerguy3 commented 4 years ago

Could this be a bug in Spigot and Paper chunk generation ?

Brettflan commented 4 years ago

Note that regions (and thus region files) cover 32x32 chunk areas, so if a region file is "missing", that would be a full 32x32 chunk region.

The isolated random chunks generating beyond all others is a general issue with Minecraft chunk generation even in vanilla.

Tsoccerguy3 commented 4 years ago

I teleported to the missing chunks and they generated and I did a trim to get rid of the unwanted chunks . A little reading and I think there is a chunk problem in 1.15 which is why there will be a 1.15.1 or 2 soon

Tsoccerguy3 commented 4 years ago

On closer inspection of the round worlds that I generated many times for testing , the edges are erratic and less smooth than before . Running trim on a round world after its generation leaves the edge with unattached land and jagged.

Edit : The border on the 3D map is still the same as before , it looks funny.

Tsoccerguy3 commented 4 years ago

Is there any way to change the padding to void so no land is generated past the border . Cleanroom generator doesnt work since 1.13

Brettflan commented 4 years ago

Just in case you don't realize it, DynMap doesn't really properly handle the possibility that a chunk gets deleted ("Trimmed" in this case) and will generally continue showing a chunk there when it's actually gone, until you delete the map cache and do a fullrender again.

The reason there is padding is to cover chunks that would be generated when a player reaches the border, due to the player's sight range. There is no good way to prevent chunks from being generated outside the border. Cancelling the chunk generation technically can be done in code, but the client will just constantly keep requesting the chunk data and triggering the server to try to access/generate it.

Tsoccerguy3 commented 4 years ago

After a trim flat After a trim

I did a shutdown between tasks as required and using the Dynmap beta7 i compiled this morning . I have no real way to know if all is working . Sorry , i though that i could make the chunks a void biome outside the border for a space effect . the padding would be a Void chunk , There was a way to do it when Cleanroom was working, i would generate the world normally and clean it up , Trimming back to the border with no padding. Then set cleanroom to generated new chunks as Void chunks . If a player went to the border they see just empty space .

Tsoccerguy3 commented 4 years ago

Trim and fill are missing some spots, I started deleting Dynmap folder in between /wb Trims and fills to see if it is not filling or trimming the areas needed

Tsoccerguy3 commented 4 years ago

some more experimenting it only happens with a round world

timriker commented 4 years ago

On my 1.15.1 server, fill did not fill. I wiped and reloaded dynmap and only got partial rendering. It turns out that dynmap was not rendering pre-1.13 formatted chunks. A forceupdate and then a fullrender updated those sections of the map, but a wb fill still did not fill in the missing chunks on a new world. Is it possible that chunk generation under 1.15.1 is creating pre-1.13 chunks? That does not seem likely to me, but I don't know how to test it.

Tsoccerguy3 commented 4 years ago

you should be on the latest build of spigot , preferably the paper fork of 1.15.2 . you should clean your cashes of any old spigot builds. a forced update should always be done . if a chunk is locked it wont be trimmed or filled , this kind of maintenance should be done with dynmap disabled . purge your maps. use the latest plugins compiled for source , they have the latest fixes

timriker commented 4 years ago

I did all that while on 1.15.1 and reported that it failed. I had stopped dynmap, kicked people off the world to try to avoid locks, cleared dynmap cache, did the fill, did a fullrender in dynmap, and there were still huge areas that were not filled. I have not retried under 1.15.2 yet.

Tsoccerguy3 commented 4 years ago

1.15.1 spigot is not supported , therefore should not be used . Bug fixes are only done on current builds .You should be running the latest build from here or compiling yourself . https://papermc.io/downloads . on first run use this switch , then revove it, --forceUpgrade

remember other plungins can lock chunks as well , so disable all not essential plugins while doing a trim or fill

Tsoccerguy3 commented 4 years ago

One last thing , there may be lighting errors in a chunk . this is a older bug . The plugin light cleaner will fix these https://ci.mg-dev.eu/ . if the area is not fixed you can try setting glowstone by hand then removing them . If the lighting error is severe the chunk will reset and regenerate .