questbridge-1.2.0.jar
Curse Maven Snippet
What's new
Changelog 1.2.0
Added
/questbridge explain <requirement_id>,explain task <task_code>,explain here, andexplain ftbtask <task_code>: a full in-game report for why a task is or isn't progressing — bound task and quest-lock state, world conditions, every selector condition with a YES/NO, and a one-sentence verdict.explain ftbtaskcovers plain, non-QuestBridge FTB tasks too (item, structure, biome, and more), including whether a task only submits on a manual click.- New selector key
near_fluid_tag: matches a fluid tag anywhere in the cube scanned around the player, alongsidenear_block/near_block_tag— catches a pond, a river, the sea, and waterlogged blocks that a biome tag alone would miss. - New selector keys
structure_match("piece", the default, or"bounds") andstructure_margin:in_structure/in_structure_tagcan now match a structure's whole bounding box instead of only a generated piece — covers village plazas, path gaps, farm plots, and roofs that a piece-only match cannot see. - A structure-bounds assist for FTB's own native structure task:
assist.structure_bounds(default on) andassist.structure_margininsettings.jsoncredit it for standing anywhere inside the structure, not only inside a generated piece — the same fix asstructure_match, applied to plain FTB tasks that never touch a QuestBridge requirement. feedback.progress_interval_tickssetting (default 40 ticks / 2s, minimum 10): the progress feedback throttle interval is now configurable instead of a hard-coded 5 seconds.- Two more ready-made examples for
/questbridge examples(ten total):sit_by_the_water.json(near_fluid_tag) andstand_in_a_village.json(structure_match: "bounds"). - Validation findings
requirement_stat_missing(astat_thresholdrequirement with nostatkey anywhere in its selector) andrequirement_distinct_by(adistinct_byvalue that isn't actually implemented; the schema's enum is also narrowed to the four values that are:item_id,entity_id,block_id,namespace). - A one-line INFO log on every index rebuild (server start,
/questbridge reload, and every FTB Quests book/file reload) confirming the bridge and the structure-bounds assist are live: bound custom task count, indexed native structure task count, and the currentassist.structure_boundssetting — plus a once-per-session WARN if the assist could not read structure task targets yet. - A positive INFO log line stating exactly which commands still work when FTB Quests is not installed, instead of leaving the log silent.
Changed
assist.structure_boundsships on by default, so upgrading alone changes how every native FTB structure task in an existing pack is credited — seeCHANGELOG.md's upgrade notes.- The progress-feedback throttle interval is now
feedback.progress_interval_ticks(default 40 ticks / 2s) instead of a hard-coded 100 ticks / 5s.
Fixed
item_collection/item_filterno longer double-counts: 1.1.0 also added +1 on every matching right-click on top of the inventory poll's absolute count, which could inflate progress past the real inventory total. It is now inventory-only; a requirement that wants the old additive behavior back can set"trigger": "item_use"explicitly. The inventory scan also now covers worn armour and the off-hand item, which 1.1.0 missed entirely.distinctprogress can no longer regress: if a crash left the persisted distinct set smaller than what FTB Quests still recorded, QuestBridge now keeps the higher value instead of writing the smaller one back over it.- A continuous
location_timerstreak breaking no longer touches a task that is already completed, already at max progress, or in a quest that cannot currently start — 1.1.0 could wipe a finished continuous timer sitting in a lockedflexiblequest before FTB's own dependency sweep had a chance to credit it. - Fixed the
near_block/near_block_tag/near_fluid_tagcube-scan cache key: it used to be keyed on an object identity hash plus the player only, so two selector nodes could collide after garbage collection and a player who walked or teleported away within the same one-second window could read the previous answer. The key is now a stable per-node id plus the player plus the exact block position, and the cache is cleared on/questbridge reload. structure/structure_tagused to silently match every location in a player-location selector (they were validated but never evaluated there). They now correctly aliasin_structure/in_structure_tag.- The
statselector key forstat_thresholdis now found anywhere in the selector tree (including insideall/any), not only at the top level — it used to leave the requirement silently un-polled. - The feedback throttle map now evicts a (player, task) entry the moment that task completes, and every entry for a player on disconnect, instead of growing for the life of the server.
- A malformed selector array entry (for example
{"any": [3]}) used to throw aNullPointerExceptionstraight out of the config load; it now simply never matches instead of crashing the load. - QuestBridge's own location timers, inventory polls, and
block_interaction/entity_interactionevents now all ignore a player in spectator mode, matching the rule FTB's own biome/structure/ dimension tasks already apply. - A bound custom task's book button is now clickable only for an inventory requirement. Clicking it re-runs the same check the poll already does, and that check does nothing for a location timer or an event-driven requirement — 1.1.0 showed a silently dead button for every one of those.
This mod has no additional files

