Villager wastes a lot of time loading.
It would be more efficient and much faster to load only the chunks where there is a player and the chunks are loaded directly from the player, rather than loading the Villager data all at once from scratch. Also, I would like to use an async method of loading VIllager data, it's too slow. Also, killing a Villager doesn't clean up the Villager's data, so it's permanently loaded on the server.
Loading entity data from all worlds...
This process is taking too long. This process alone took 90 ~ 110 seconds Change it to only checking for entities in the chunk when it is loaded.
I'll try a different approach for loading villager data
I have a suggestion, I would like to have the chunks around the player loaded asynchronously, without preloading the data, and then skip the loaded sections. If it's an M.2 ssd or a non-ssd hard disk, the time to load the last entity exceeds 500 seconds and the server won't start.
Even though the plugin is up to date, it still takes 100second~ to load on average.
Load scheduler options: Sync Async Half Async
Load Method Suggestions :
-
load asynchronously by 1.5x the server's field of view based on online players (can be changed in config)
-
only loaded chunks with players
-
only chunks with resident data
-
after the server is fully started, first create a separate resident data sqlite and load that area
-
instead of loading entity data, load individual sqlite db
-
only chunks that are in the player's line of sight
-
Only interacted with villager
-
Create a separate data-storage in the plugin folder to store only the resident data in the entitie region, so that it is loaded together when the plugin is loaded without checking the existing region, and check the region when the chunk is modified, so that the data is processed only when the resident's value is changed or the location is moved.
A faster data loading method is needed. Instead of this plugin reading the world data, it would be better to create a separate YAML or SQLITE database to record newly created or modified residents, and then load the data only when necessary.
-
The data load process is loaded asynchronously (as a separate process) after the server is loaded.
-
entites activate check
-
mixed