← Назад к ресурсам

BlueMap Sign Markers

A Fabric plugin for BlueMap that creates markers from signs

Modrinth management utility

Описание

BlueMap Sign Markers ==================== # Overview Fabric plugin for BlueMap that displays markers based on in-game signs # Installation Place in your `mods` folder along with BlueMap. Server-side only. # Usage Place a sign or hanging sign with the following text on either the front or back: ``` [poi] ``` A marker will be displayed on the map at the location of the sign with the text ``. The marker will be removed from the map when the sign is broken. Note that the prefixes can be configured in the configuration file. # Configuration The mod will create a `BMSM-Core.json` file in the `config/bluemapsignmarkers` folder. This file contains the following options: - `markerGroups` - a list of marker groups (described in detail below); default is a list with a single marker group configured for the `[poi]` prefix. ## Marker Groups A marker group is a collection of markers that can be toggled on and off in the BlueMap UI. Each marker group configuration contains the following options: - `prefix` - prefix that the sign must contain to be included in the marker group; required; - `matchType` - the type of match to use when checking the first non-empty sign text line; optional; default is `STARTS_WITH` (case-sensitive exact match); - `STARTS_WITH` - line must start with the prefix; - `REGEX` - line must match the regular expression (uses [Java regex engine](https://docs.oracle.com/javase/8/docs/api/java/util/regex/Pattern.html)); - `name` - the name of the marker group; required; - `type` - the type of marker to display; optional; default is `POI` - `POI` - a single point marker per sign; - `LINE` - signs sharing this group's prefix and the same first-line label become ordered points of one line marker (points ordered by placement time); requires at least 2 signs to appear; - `SHAPE` - signs sharing this group's prefix and the same first-line label become ordered points of one filled polygon marker (points ordered by placement time, height taken from the tallest member); requires at least 3 signs to appear; - `EXTRUDE` - shares `SHAPE`'s exact membership model (same prefix/label grouping, 3+ signs, points ordered by placement time), but renders the polygon extruded as a solid volume: the floor is taken from the lowest member's Y, the ceiling from the tallest member's Y (if all members share the same Y, the ceiling is bumped up by 1 block to avoid a zero-height volume); - `icon` - the icon path or URL to display for the marker; optional; default is `null` (BlueMap default POI icon); `POI` only - `offsetX` - the x offset of the marker; optional; default is `0` (corresponds with `anchor.x` in BlueMap base configuration); `POI` only - `offsetY` - the y offset of the marker; optional; default is `0` (corresponds with `anchor.y` in BlueMap base configuration); `POI` only - `defaultHidden` - If this is true, the marker-set will be hidden by default and can be enabled by the user; optional; default is `false` - `minDistance` - the minimum distance from the camera at which the marker will be displayed; optional; default is `0.0` (floating point, double precision) - `maxDistance` - the maximum distance from the camera at which the marker will be displayed; optional; default is `10000000.0` (floating point, double precision) - `lineWidth` - the width in pixels of the line/shape/extrude border; optional; default is `2`; `LINE`/`SHAPE`/`EXTRUDE` only - `lineColor` - the hex color (with alpha) of the line/shape/extrude border, e.g. `#FF0000FF`; optional; default is `#FF0000FF`; `LINE`/`SHAPE`/`EXTRUDE` only - `fillColor` - the hex color (with alpha) of a shape's or extrude volume's interior, e.g. `#FF000033`; optional; default is `#FF000033` (translucent red); `SHAPE`/`EXTRUDE` only - `sorting` - the marker-set's order in the map's layer menu (lower sorts first); optional; default is `0` - `toggleable` - whether the marker-set can be hidden/shown by a player at all; optional; default is `true` - `depthTest` - whether terrain can occlude the marker (set `false` to keep an underground trail/region visible through terrain); optional; default is `true`; `LINE`/`SHAPE`/`EXTRUDE` only - `cssClasses` - a list of CSS classes added to the marker element, for styling via BlueMap's `custom.css`; optional; default is an empty list; `POI` only Setting a field on a group type it doesn't apply to (e.g. `icon` on a `LINE`/`SHAPE`/`EXTRUDE` group, `fillColor` on a `POI`/`LINE` group, `depthTest` on a `POI` group, or `cssClasses` on a `LINE`/`SHAPE`/`EXTRUDE` group) is not an error; the mod logs a warning and ignores the field. ## Examples ```json { "markerGroups": [ { "prefix": "[poi]", "name": "Points of Interest" }, { "prefix": "[store]", "name": "Stores", "icon": "assets/store.png" }, { "prefix": "\\[[vV][iI][lL][lL][aA][gG][eE]\\]", "matchType": "REGEX", "name": "Villages" }, { "prefix": "[trail]", "name": "Trails", "type": "LINE", "lineWidth": 3, "lineColor": "#00A2FFFF" }, { "prefix": "[region]", "name": "Regions", "type": "SHAPE", "lineWidth": 2, "lineColor": "#FFA500FF", "fillColor": "#FFA50040" }, { "prefix": "[building]", "name": "Buildings", "type": "EXTRUDE", "lineWidth": 2, "lineColor": "#4682B4FF", "fillColor": "#4682B440" } ] } ``` This example configuration creates 6 marker groups: one for `[poi]` signs, one for `[store]` signs, one for signs where the prefix is a regex match for villages (e.g. `[Village]` or `[VILLAGE]`), one for `[trail]` signs, one for `[region]` signs, and one for `[building]` signs. ## Troubleshooting - **Editing a marker group's prefix (especially a `REGEX` prefix) orphans existing signs.** On servers running a version before this fix, changing a group's prefix text can make already-placed signs vanish from the map after `/bluemap reload`, and they won't come back on their own. Re-edit the sign's text (even re-typing the same text) or restart the server to fix it. Signs created or re-edited on a version that ships this fix self-heal automatically on `/bluemap reload` - no manual fix needed going forward. - **Markers are hidden on maps whose `render-mask` excludes them.** A sign's marker only shows up on a given BlueMap map if the sign's position is inside that map's own `render-mask` (configured in `config/bluemap/maps/.conf`) - e.g. a nether-roof map with `min-y: 127` won't show markers for signs placed below y=127. A map with no `render-mask` is unaffected. **After upgrading to a version with this fix, run `/bluemap reload` once** to sweep away any markers that were already showing on a map outside its render bounds - a plain server restart alone does not trigger this sweep.