Commit Graph

43 Commits (8bea7f60cf541ee41031ebd7e67a247271d49303)

Author SHA1 Message Date
trivernis 8bea7f60cf
Add option to specify the inner radius of the area.
Doesn't completely work because it checks the area again
and generates the chunks that were skipped over.

Signed-off-by: trivernis <trivernis@protonmail.com>
3 years ago
trivernis ec7af49267
Add support for escaped whitespace to arg parser
Signed-off-by: trivernis <trivernis@protonmail.com>
3 years ago
trivernis e545445348
Add completed command to list completed tasks
Signed-off-by: trivernis <trivernis@protonmail.com>
3 years ago
trivernis 6df01dd137 Add progress report to tasks generating to the worldborder
- Closes #90
4 years ago
trivernis 733996e6a9 Remove empty body of PausedTaskEntry 4 years ago
Trivernis 441b13ec69
Fix/merge conflict (#87)
* Version 1.3.0 (#85)

* Feature/async chunkmaster (#81)

* Change generation to be asynchronous

At this stage it will most likely crash the server at a certain point.
Pausing and resuming isn't stable. Saving the progress isn't stable as well.
Chunks are being unloaded in the main thread by an unloader class.

* Switch to native threads

- Use thread instead of async tasks
- Store pending paper chunks in the database
- Interrupt the thread when it should be stopped

* Fix insertion of pending chunks

Fix an error that is thrown when the sql for inserting pending chunks doesn't have any chunks to insert.

* Add task states

Add states to differentiate between generating and validating tasks
as well as a field in the database to store this information.
A task will first generate a world until the required radius or the
worldborder is reached. Then it validates that each chunk has been generated.

* Add object representation of world_properties table

* Add DAO for pending_chunks table

* Add DAO for generation_tasks table

* Add state updating to periodic save

* Fix loading of world properties

* Add states to tasks and fix completion handling

* Fix progress report and spiral shape

* Modify the paper generation task so it works with spigot

This change is being made because normal chunk generation doesn't allow
chunks to be requested from a different thread. With PaperLib this issue
can be solved.

* Add workarounds for spigot problems

* Fix some blocking issues and update README

* Add locking to ChunkUnloader class

* Add total chunk count to list command (closes #79) (#82)

* Fix shape beign stuck (#83)

* Add autostart config parameter (closes #78) (#84)

* Add circleci badge to readme

* Add codefactor badge

* Update Translation to 1.3.0 (#86)

* Update Translation to 1.3.0

* Tweak SQL_ERROR word order

Co-authored-by: NPBeta <shanhang007@gmail.com>
4 years ago
trivernis aaa614f651 Cleanup 4 years ago
Trivernis ac6a80ed86
Add autostart config parameter (closes #78) (#84) 4 years ago
Trivernis af875aaca0
Fix shape beign stuck (#83) 4 years ago
Trivernis acf302e8c1
Feature/async chunkmaster (#81)
* Change generation to be asynchronous

At this stage it will most likely crash the server at a certain point.
Pausing and resuming isn't stable. Saving the progress isn't stable as well.
Chunks are being unloaded in the main thread by an unloader class.

* Switch to native threads

- Use thread instead of async tasks
- Store pending paper chunks in the database
- Interrupt the thread when it should be stopped

* Fix insertion of pending chunks

Fix an error that is thrown when the sql for inserting pending chunks doesn't have any chunks to insert.

* Add task states

Add states to differentiate between generating and validating tasks
as well as a field in the database to store this information.
A task will first generate a world until the required radius or the
worldborder is reached. Then it validates that each chunk has been generated.

* Add object representation of world_properties table

* Add DAO for pending_chunks table

* Add DAO for generation_tasks table

* Add state updating to periodic save

* Fix loading of world properties

* Add states to tasks and fix completion handling

* Fix progress report and spiral shape

* Modify the paper generation task so it works with spigot

This change is being made because normal chunk generation doesn't allow
chunks to be requested from a different thread. With PaperLib this issue
can be solved.

* Add workarounds for spigot problems

* Fix some blocking issues and update README

* Add locking to ChunkUnloader class
4 years ago
trivernis 94f70c39b0 Fix #66, #70 Task progress being discarded on resume 4 years ago
trivernis 615280a2ed Add stats command to print chunkmaster stats
- Server information
- Worlds chunk information
4 years ago
trivernis 928dfbf264 Fix #61 incorrect progress percentage 4 years ago
trivernis 0bc38384b4 Change pause on join to have a configurable player count
Closes #31
4 years ago
trivernis 29d0f8991e Add option to pass the world name for cancel
- Add the option to pass the world name to chm cancel to cancel
generation tasks
- Fix #46 by adding additional error handling
4 years ago
trivernis c090977021 Revert optimizations on spigot
Revert the optimizations which check if the chunk is already generated because
the function doesn't report the right value.
https://hub.spigotmc.org/jira/browse/SPIGOT-5541?attachmentOrder=desc
4 years ago
trivernis be130adc6f Improve spigot chunk generation
Add skipping of already generated chunks.
An issue remaining is that some chunks are still
not generated and the shape doesn't always match.
4 years ago
trivernis 2b121b67fd Fix generation stopping one chunk too early 4 years ago
trivernis 0347730580 Improve performance of periodical chunk progress saving task 4 years ago
trivernis 572369192a Add circlular generation tasks 4 years ago
trivernis 2eeff350f8 Add circular shape class 4 years ago
trivernis 53aec18a06 Change group for Chunkmaster dynmap markers
- Change the group to "Chunkmaster" to be able to disable all of those markers.
- Add a marker that displays the last chunk that has been generated and refreshes
every 30 seconds.
4 years ago
trivernis 8953b63c2b Add integration for dynmap
By integrating with dynmap the plugin can show the area of the generation task for each world via an area marker and
triggers the rendering of tiles for generated chunks.
4 years ago
Trivernis 832b1c4b55 Add command to set and get the center
- Add getCenter command to get the center of the world used for generation
- Add setCenter to set the world center for generation tasks. If there is already a task running for the world the center for that task will not be  affected.
- Fix SQL problem with multiple queries at the same time creating new connections
- Add translations for new commands
- Add Examples to Readme
- Add new table to safe world centers
- Add query to Generation manager to get the center of the world for new generation tasks
4 years ago
Trivernis bdac496ce2 Fix unique world sql error
Fix error thrown by unique constrain for the world name in the sql table. The error occurs because the data from the database is loaded lazily after several seconds. If a task was started before that it wouldn't be checked against the existing tasks since they haven't been loaded yet. Fixed by loading the tasks if none exists when the generate command is invoked.
4 years ago
trivernis ecc3165f1f Add delay to starting of generation tasks
Add a delay to the starts of the tasks so that they don't all start on the same tick. To completely avoid two tasks being executed on the same tick, the "period" config option should be set to the expected number of tasks or higher.
4 years ago
trivernis 6cb39ce843 Remove logging of eta in seconds 4 years ago
Trivernis a4115ebdf7 Add ETA to periodic reports
Closes #17
4 years ago
trivernis bd731c85f0 Add i18n to generation manager 4 years ago
trivernis 900600714e Add i18n structure 4 years ago
trivernis f88100be5f Fix chunk center coordinate being calculated the wrong way
Fixes #19
4 years ago
trivernis f89262e538 Add ignore-worldborder config option
- [Convert to unix linebreaks]
- Add ignore-worldborder config option to generate past the vanilla world border
4 years ago
Trivernis 8b63643f7a Changes to sql structure
- changed SqliteUpdateManager to SqliteManager
- added methods to execute sql with values and callback to the SqliteManager
- added auto close of statements
- switched to establishing a connection only when sql should be executed
5 years ago
Trivernis a8729f2e03 Fixes and Generation progress
- added generation progress display
- fixed spigot generation task
- fixed generation units
- fixed generation configuration
5 years ago
Trivernis 350e774bb2 Fixes and Generation units
- generate command now accepts a unit parameter
- fixed the skipping of not generated chunks
5 years ago
Trivernis 7c953ac085 Added tpChunk command
- added tpchunk command
- changed help display on chunkmaster command
- removed autostart table column
5 years ago
Trivernis 209c84b9e7 Less verbose console output
- removed pausing and resuming message when no tasks are running
- stopping and resuming tasks on reload
5 years ago
Trivernis 8134ccde9c Fixes and speed improvement
- added config parameter to define the number of chunks that should be generated per step
- probably fixed #3 by processing or canceling pending chunks before the world is saved
5 years ago
Trivernis 5d0f158427 Changes to task cancelation and fix
- fixed generate command error on multiple tasks for one world
- changed check of task completion from polling to interrupt (via callback function)
5 years ago
Trivernis 132294d683 TabComplete for all subcommands
- added tab complete to all subcommands
- added list of paused task when no task is running
- added possibility to remove paused tasks
5 years ago
Trivernis 638ae07fe5 Code cleanup, Version correction
- changed version from 0.10-beta-SNAPSHOT to 0.10-beta
5 years ago
Trivernis 5a5fe74d9c Performance and stability improvements
- improved performance of paper generation task
- improved stability of spigot generation task
- Updated Readme
- added configuration parameters for max pending chunks and max loaded chunks
5 years ago
Trivernis c49036e35b Performance improvements
- improved performance on paper servers by using chunk coordinates instead of chunk instances to check if the chunk was generated
- moved generation stuff to lib/generation
5 years ago