BlueMapMarkerService

Reads BlueMap markers via the BlueMap API and provides searchable location data for the mod.

When BlueMap is installed, this service registers lifecycle hooks through BlueMapBridge to automatically load POI markers when BlueMap becomes available. Markers are refreshed periodically to pick up changes from other mods that add markers after BlueMap's initial load.

If BlueMap is not installed, the service gracefully disables itself with no runtime impact.

See also

Properties

Link copied to clipboard

Categories excluded from LLM context by default (low-value for teleportation).

Link copied to clipboard

Categories included in Jeeves location searches. Only high-value navigation categories are included to avoid cluttering LLM context with signs, banners, and chests.

Functions

Link copied to clipboard

Returns all currently cached markers.

Link copied to clipboard

Returns the single best match for a query, or null if no match is found.

Link copied to clipboard
fun initialize(refreshIntervalSeconds: Int = DEFAULT_REFRESH_INTERVAL_SECONDS.toInt())

Initializes the service by checking for BlueMap and registering lifecycle hooks if present.

Link copied to clipboard
fun locationsForContext(excludedCategories: Set<String> = DEFAULT_EXCLUDED_CATEGORIES): List<String>

Returns deduplicated marker names with categories, suitable for LLM context.

Link copied to clipboard
fun search(query: String): List<MapMarker>

Searches markers by name using case-insensitive substring matching.

Link copied to clipboard
fun searchForContext(query: String, includedCategories: Set<String> = JEEVES_INCLUDED_CATEGORIES): List<String>

Searches markers by name or category, filtered to a set of included categories.