Eternal Harvest
v1.18.0Track and simulate the growth of crops and saplings even offline, with persistent data storage.
v1.18.0latestEternalHarvest v1.18.0 - The Plant Kingdom UpdateJul 3, 2026 EternalHarvest v1.18.0 - The Plant Kingdom Update The plants have unionized, and EternalHarvest has agreed to track more of them. This update expands support across a much wider set of Minecraft plants, especially the weird ones that grow upward, downward, change block type, attach to fruit, or turn into full structures. Newly supported plants: · Torchflower crops and pitcher crops · Cave vines, twisting vines, weeping vines, and regular vines · Big dripleaf and small dripleaf · Chorus flowers · Azalea and flowering azalea · Crimson fungus and warped fungus · Brown mushrooms and red mushrooms Improved growth behavior: · Small dripleaf can now grow into big dripleaf. · Pumpkin and melon stems can now grow fruit properly. · Attached pumpkin and melon stems are now handled correctly. · Vertical plants keep tracking when partially harvested. · Plants that change block type while growing are no longer treated as missing. · Structure-style plants now use Bukkit structure growth where supported. Config update: This release updates the config to config-version: 3. Existing configs are backed up and upgraded automatically while keeping your custom settings.v1.17.8EternalHarvest v1.17.8 - Player-Planted Kelp SupportJul 1, 2026 EternalHarvest v1.17.8 This update fixes kelp handling. Minecraft uses Code (Text): KELP for the top of the plant and Code (Text): KELP_PLANT for the body, so EternalHarvest now treats both as one kelp stack when the kelp was planted by a player. Natural ocean kelp is still ignored, so the database will not fill up with random sea plants. Fixed: · Player-planted kelp could stop being tracked after it grew. · Kelp body blocks could appear as untracked Code (Text): kelp_plant in debug logs. · External kelp growth now refreshes existing tracked kelp instead of creating new ocean records. · Reduced noisy debug output from untracked environmental blocks. Improved: · Kelp now grows as a vertical stack, similar to sugar cane and cactus. · Tracked kelp can continue growing while unloaded/offline. · Natural ocean kelp remains untouched by EternalHarvest.v1.17.7EternalHarvest v1.17.7 - Growth Sync & Bee Nest FixesJun 29, 2026 EternalHarvest v1.17.7 This update makes EternalHarvest play much nicer with normal Minecraft growth. Crops that grow naturally or with bone meal now stay synced with EternalHarvest’s tracking, and trees grown with bone meal can now trigger the bee nest system too. Bee nest placement has also been tightened up so it avoids placing extra nests when one is already nearby. Fixed: · Crops could get out of sync when grown by vanilla growth. · Crops could get out of sync when grown with bone meal. · Trees grown with bone meal did not use EternalHarvest’s bee nest logic. · Stale sapling records could remain after a tree grew. · Some debug messages could repeat unnecessarily. Improved: · More reliable cleanup for old plant records. · Bee nest placement now checks for nearby nests first. · Cleaner debug output.1.17.3EternalHarvest v1.17.3 - Livelier Crops, Config Migration & Bee Nest FixesJun 28, 2026 EternalHarvest v1.17.3
This update improves crop visuals, config handling, sugar cane/cactus growth, and generated bee nests. ## New - Crops now feel more alive with small particles when they advance a growth stage. - Plants now have a small stable visual offset, so fields no longer update in one perfectly synchronized wave. - The plugin now checks ifconfig.ymlis outdated and updates it automatically. - Old configs are backed up before migration. ## Fixed - Fixed sugar cane not visibly growing. - Fixed cactus growth so it grows vertically like vanilla. - Fixed generated bee nests so bees are stored inside the nest instead of spawning as fragile loose bees. - Bees from generated nests are now persistent and should no longer disappear shortly after spawning. ## Config The default update interval is now:update-interval-seconds: 15New visual settings: ```yml growth-visuals: particles-on-growth: true particle-count: 4 random-growth-offset-seconds: 30v1.16.1EternalHarvest v1.16.1 - Performance & Chunk Catch-Up FixJun 23, 2026 EternalHarvest v1.16.1
This update improves performance, database handling, and offline/unloaded chunk growth behavior. ## Important Fix Fixed an issue fromv1.16where plants in unloaded chunks could appear as if no time had passed. Plants now correctly catch up when their chunk loads again, while still avoiding constant forced chunk loading in the background. ## Performance Improvements - Reduced database task spam by batching plant growth progress updates. - Reduced main-thread scheduler load during growth updates. - Cached configured plant growth times on startup. - Avoided unnecessary crop age updates when the crop age has not changed. - Improved unloaded chunk handling to reduce lag spikes. ## Database Improvements - Added stable location storage for tracked plants. - Existing database records are migrated automatically. - Duplicate plant records are cleaned up automatically. - Added protection against future duplicate plant records. - Improved SQLite reliability and performance settings. ## Compatibility - Built for Spigot / Bukkit API1.21. - Requires Java 21. - Version:v1.16.1## Important Please back up your EternalHarvest plugin data folder before updating, especially:plant_growth.dbv1.16EternalHarvest v1.16Jun 23, 2026 EternalHarvest v1.16
This update focuses on performance, database cleanup, and smoother behavior on larger servers. ## What's Improved - Much faster growth update cycle for servers with many tracked plants. - Growth progress database updates are now batched. - World updates are processed in one main-thread pass instead of scheduling one task per plant. - EternalHarvest no longer force-loads unloaded chunks during growth checks, reducing lag spikes. - Crops still catch up based on stored timestamps when their chunks are loaded again. - Configured plant growth times are cached on startup for faster block event handling. ## Database Improvements - Plant locations are now stored with stable location keys. - Existing database records are migrated automatically on startup. - Duplicate plant records are cleaned up automatically. - A unique location index now prevents future duplicate records. - SQLite settings were tuned for better reliability and performance. ## Build / Compatibility - Updated plugin metadata for Minecraft / Spigot API1.21. - Removed unused build shading. - Built with Java 21. ## Important Please back up your EternalHarvest plugin data folder before first startup after updating, especiallyplant_growth.db. The plugin will automatically migrate old stored plant locations.v1.14Eternal Harvest 1.14Aug 17, 2024 - Improved `onBlockBreak` Event Handling: - Updated theonBlockBreakevent handler inPlantListenerto include a database existence check before attempting to remove a record. This ensures that only valid records are removed, preventing unnecessary operations and errors. - Database Existence Verification: - Added logic to fetch the material associated with the block's location from the database using thegetMaterialAtLocationmethod. - If a corresponding record exists in the database, the record is removed using therecordRemovalmethod. - If no record is found, the plugin logs a debug message, preventing attempts to delete non-existent records. - Improved Debugging Information: - Enhanced logging for better debugging, including messages when records are successfully removed or when no record is found for the block being broken. - Consistent Record Management: - Ensured that the same existence check and removal process are used consistently across various block-related events, including block breaks, explosions, and burning events. - Code Refactoring: - Refactored the event handling methods to reduce redundancy and improve code readability and maintainability. - Centralized the logic for database checks and record removal to streamline future updates and bug fixes. This update enhances the reliability and performance of the plugin by ensuring that database operations are only performed when necessary, reducing potential errors and improving overall efficiency.v1.13Eternal Harvest v1.13Aug 3, 2024 Key Changes: · Synchronization and Atomic Counters: · Added dbLock to synchronize access to the database. · Added activeStatements to track active SQL statements. · Synchronization in Methods: · Wrapped database operations within synchronized (dbLock) blocks. · Used activeStatements.incrementAndGet() and activeStatements.decrementAndGet() to track active SQL statements. · Waiting Mechanism in vacuumDatabase: · Ensured vacuumDatabase waits until no other SQL statements are in progress before proceeding with the VACUUM operation. This ensures that the VACUUM command only runs when it's safe to do so, avoiding the SQLITE_ERROR.v1.12ExplodeEvents, BlockBurn Events, Minor fixes and cleanupJul 16, 2024 EntityExplodeEvent and BlockExplodeEvent: These events are triggered when explosions occur. The event.blockList() method provides a list of blocks affected by the explosion. handleBlockExplosion method: This method is called for each block affected by the explosion. It performs the same checks and actions as in the onBlockBreak method, ensuring that blocks with growth times are removed from the database. onBlockBurn Event: This event handler listens for BlockBurnEvent and calls the handleBlockBurn method to handle the block removal. handleBlockBurn Method: This method performs similar actions as handleBlockExplosion to check if the block has a growth time and then removes it from the database if necessary. Minor fixes and cleanupv1.11Mangrove tree, database Maintenance, Vacuum to shrink the database file.Jul 14, 2024 The newly added code changes, allow the plugin to determine the type of mangrove tree to grow, based on a value specified in a configuration file. Instead of using a fixed number to decide between tall and regular mangrove trees, the plugin now reads this decision-making number from the config.yml file. This makes it easy to adjust how often each type of tree appears without changing the code. Added database Maintenance, to ensure there are no old data or duplications, and a Vacuum to shrink the database file, with configurations inside the config.yml file.v1.1ADDED SUPPORT FOR MORE AGEABLESJul 14, 2024 Added support for nether_wart sweet_berries cocoa_beans pumpkin_stems melon_stems bamboo kelp cherry_saplingv1.0UPDATED SUPPORT:Jul 14, 2024 UPDATED SUPPORT: Bamboo Nether Wart Sweet Berries Cocoa Beans Pumpkins Melons Kelp Cactus Sugar Cane
Similar projects
Plugin →Let Me Despawn
Improves performance by tweaking mob despawn rules. Say bye to pesky unintentional persistent mobs.
25MSueta
JourneyMap
Real-time map used for mapping in-game or your browser as you explore.
14.7MSueta
Emotecraft
Create your own emotes in Minecraft.
7.5MSueta
Simple Tpa
A simple tpa plugin which sends requests
5.4MSueta
Common Network
Forge and Fabric Unified Networking Solution
3.9MSueta
Set Home
A lightweight plugin for players to set their homes.
3.8MSueta