Перейти к содержимому
Mineforgian

Async Locator Refined

Changes the searching of features to be asynchronous to mitigate associated lag. Maintained version

Загрузки
33K
Подписчики
33
Обновлён
24 июля 2026 г.
Лицензия
MIT

Опубликован 4 апреля 2025 г.

This mod is a port of the original version.

I have obtained the creator’s permission to port it.

For versions 1.20.1 or earlier, download the original mod here


Modifies vanilla behaviour when locating features to run asynchronously, mitigating associated lag.

This is currently implemented for:

  • Locate structure command when executed by a user
  • Locate biome command when executed by a user (v1.5.0+)
  • Villager explorer map trade offers
  • Dolphin treasure finding
  • Exploration map in chests

This mod is only required to be installed server side! So clients only need this installed if they want it for single player.

This alone only works for vanilla (see list above). Other mods may need to implement usage of this mod themselves to make use of the async functionality.

Incompatibilities

Mods that affect vanilla's structure locating features may impact Async Locator's functionality.

Right now, the list below states other mods that I'm aware of:

Has been seen that on startup only one of either Async Locator's or Structure Essentials' locating improvements will work. No real issues otherwise, but only one of the mods are required.

Mod Integration

Other mods can also use Async Locators as a dependency to implement the asynchronous locating into their own code. To do so, please use CurseMaven or Modrinth Maven to add this mod to your build.gradle, and then make use of the AsyncLocator class and/or logic classes.

Ченджлог

1.21.1-1.6.0Релиз1.21.1 · 24 июля 2026 г.

This version brings overall improvements to the mod.

Fixes:

  • ExplorationMapFunction.run performed the search before calling MapItem.create, meaning the original mixin never prevented the blocking operation from running on the main thread and instead started a redundant asynchronous search afterwards. The injection has now been moved to run before ServerLevel#findNearestMapStructure, cancelling the synchronous search entirely so exploration maps are now located asynchronously. This was a critical issue since first version of AsyncLocator-Refined.
  • Fixed thread safety races in structure lookups that could corrupt state or crash when locating off-thread.
  • Fixed a race where locate callbacks could run before the map item was placed, producing broken maps in chests and villager trades.
  • Eyes of Ender are now refunded if the stronghold search fails, times out (60s), or errors, like vanilla.
  • Dolphins no longer lose their treasure target when their search goal restarts, and handle failed searches like vanilla.
  • Villager trade offers now refresh correctly for the trading player once a map search completes.
  • /locate errors are now reported to the command sender instead of being swallowed, while preserving the client's language.

Added:

  • Expanded the public API for other mods, adding configurable locate timeouts and support for biome searches using custom biome predicates.
  • Identical concurrent locate requests (same dimension, target, position, radius) now share one search instead of running duplicates.
  • Game tests for both Fabric and NeoForge, run automatically on pull requests.
  • Sources jars are now published for mod developers.
  • Added configurable limits for concurrent and queued locate searches, preventing unbounded locate work during request bursts. The default allows 2 active searches and 128 queued searches.
All Changes

Full Changelog

1.21.1-1.6.0Релиз1.21.1 · 24 июля 2026 г.

This version brings overall improvements to the mod.

Fixes:

  • ExplorationMapFunction.run performed the search before calling MapItem.create, meaning the original mixin never prevented the blocking operation from running on the main thread and instead started a redundant asynchronous search afterwards. The injection has now been moved to run before ServerLevel#findNearestMapStructure, cancelling the synchronous search entirely so exploration maps are now located asynchronously. This was a critical issue since first version of AsyncLocator-Refined.
  • Fixed thread safety races in structure lookups that could corrupt state or crash when locating off-thread.
  • Fixed a race where locate callbacks could run before the map item was placed, producing broken maps in chests and villager trades.
  • Eyes of Ender are now refunded if the stronghold search fails, times out (60s), or errors, like vanilla.
  • Dolphins no longer lose their treasure target when their search goal restarts, and handle failed searches like vanilla.
  • Villager trade offers now refresh correctly for the trading player once a map search completes.
  • /locate errors are now reported to the command sender instead of being swallowed, while preserving the client's language.

Added:

  • Expanded the public API for other mods, adding configurable locate timeouts and support for biome searches using custom biome predicates.
  • Identical concurrent locate requests (same dimension, target, position, radius) now share one search instead of running duplicates.
  • Game tests for both Fabric and NeoForge, run automatically on pull requests.
  • Sources jars are now published for mod developers.
  • Added configurable limits for concurrent and queued locate searches, preventing unbounded locate work during request bursts. The default allows 2 active searches and 128 queued searches.
All Changes

Full Changelog

1.21.5-1.6.0Релиз1.21.5 · 22 июля 2026 г.

This version brings overall improvements to the mod.

Fixes:

  • ExplorationMapFunction.run performed the search before calling MapItem.create, meaning the original mixin never prevented the blocking operation from running on the main thread and instead started a redundant asynchronous search afterwards. The injection has now been moved to run before ServerLevel#findNearestMapStructure, cancelling the synchronous search entirely so exploration maps are now located asynchronously. This was a critical issue since first version of AsyncLocator-Refined.
  • Fixed thread safety races in structure lookups that could corrupt state or crash when locating off-thread.
  • Fixed a race where locate callbacks could run before the map item was placed, producing broken maps in chests and villager trades.
  • Eyes of Ender are now refunded if the stronghold search fails, times out (60s), or errors, like vanilla.
  • Dolphins no longer lose their treasure target when their search goal restarts, and handle failed searches like vanilla.
  • Villager trade offers now refresh correctly for the trading player once a map search completes.
  • /locate errors are now reported to the command sender instead of being swallowed, while preserving the client's language.

Added:

  • Expanded the public API for other mods, adding configurable locate timeouts and support for biome searches using custom biome predicates.
  • Identical concurrent locate requests (same dimension, target, position, radius) now share one search instead of running duplicates.
  • Game tests for both Fabric and NeoForge, run automatically on pull requests.
  • Sources jars are now published for mod developers.
  • Added configurable limits for concurrent and queued locate searches, preventing unbounded locate work during request bursts. The default allows 2 active searches and 128 queued searches.
All Changes

Full Changelog

1.21.5-1.6.0Релиз1.21.5 · 22 июля 2026 г.

This version brings overall improvements to the mod.

Fixes:

  • ExplorationMapFunction.run performed the search before calling MapItem.create, meaning the original mixin never prevented the blocking operation from running on the main thread and instead started a redundant asynchronous search afterwards. The injection has now been moved to run before ServerLevel#findNearestMapStructure, cancelling the synchronous search entirely so exploration maps are now located asynchronously. This was a critical issue since first version of AsyncLocator-Refined.
  • Fixed thread safety races in structure lookups that could corrupt state or crash when locating off-thread.
  • Fixed a race where locate callbacks could run before the map item was placed, producing broken maps in chests and villager trades.
  • Eyes of Ender are now refunded if the stronghold search fails, times out (60s), or errors, like vanilla.
  • Dolphins no longer lose their treasure target when their search goal restarts, and handle failed searches like vanilla.
  • Villager trade offers now refresh correctly for the trading player once a map search completes.
  • /locate errors are now reported to the command sender instead of being swallowed, while preserving the client's language.

Added:

  • Expanded the public API for other mods, adding configurable locate timeouts and support for biome searches using custom biome predicates.
  • Identical concurrent locate requests (same dimension, target, position, radius) now share one search instead of running duplicates.
  • Game tests for both Fabric and NeoForge, run automatically on pull requests.
  • Sources jars are now published for mod developers.
  • Added configurable limits for concurrent and queued locate searches, preventing unbounded locate work during request bursts. The default allows 2 active searches and 128 queued searches.
All Changes

Full Changelog

1.21.1-1.5.4Релиз1.21.1 · 24 июня 2026 г.

Fixed a bug causing incompatibility with some mods

  • Fixed exploration maps getting stuck with mods that virtualize per-player inventories. Maps are now updated via players' containers as the default option.
  • This issue was reported due to an incompatibility with Lootr. See Issue #5
  • This fix is a improvement over the same fix of the 1.21.1, because it now stores the UUID, update all types of containers and improves performance on large servers by not having to count the inventories of all connected players
All Changes

Full Changelog

1.21.1-1.5.4Релиз1.21.1 · 24 июня 2026 г.

Fixed a bug causing incompatibility with some mods

  • Fixed exploration maps getting stuck with mods that virtualize per-player inventories. Maps are now updated via players' containers as the default option.
  • This issue was reported due to an incompatibility with Lootr. See Issue #5
  • This fix is a improvement over the same fix of the 1.21.1, because it now stores the UUID, update all types of containers and improves performance on large servers by not having to count the inventories of all connected players
All Changes

Full Changelog

1.21.4-1.5.3Релиз1.21.4 · 10 июня 2026 г.

Fixed a bug causing incompatibility with some mods

  • Fixed exploration maps getting stuck with mods that virtualize per-player inventories. Maps are now updated via players' containers as the default option.
  • This issue was reported due to an incompatibility with Lootr. See Issue #5
  • This fix is a improvement over the same fix of the 1.21.1, because it now stores the UUID, update all types of containers and improves performance on large servers by not having to count the inventories of all connected players
All Changes

Full Changelog

1.21.4-1.5.3Релиз1.21.4 · 10 июня 2026 г.

Fixed a bug causing incompatibility with some mods

  • Fixed exploration maps getting stuck with mods that virtualize per-player inventories. Maps are now updated via players' containers as the default option.
  • This issue was reported due to an incompatibility with Lootr. See Issue #5
  • This fix is a improvement over the same fix of the 1.21.1, because it now stores the UUID, update all types of containers and improves performance on large servers by not having to count the inventories of all connected players
All Changes

Full Changelog

Комментарии

Загружаем…