Description
Don't Void My Items
A Minecraft mod that prevents Hardcore Questing Mode Quest Delivery Systems from accepting item or fluid input unless that input would advance the bound active QDS consume task.
Features
- Item Protection: Rejects items that do not match an unmet QDS item requirement.
- Fluid Protection: Rejects fluids that do not match an unmet QDS fluid requirement.
- No Overfill Voiding: Accepts only the amount still needed by the task.
- Unbound QDS Safety: Rejects item and fluid input when the QDS is not bound to a player task.
- Completed Task Safety: Rejects input after the bound task is already complete.
- Cooldown Safety: Respects HQM repeatable quest availability, including quests on cooldown.
- HQM Integration: Targets Hardcore Questing Mode
4.4.4Quest Delivery Systems.
Coremod Approach
This mod uses a small coremod patch because HQM's QDS accepts and consumes input inside the tile entity itself.
- QDS Tile Patch: Uses UniMixins to patch
hardcorequesting.tileentity.TileEntityBarreldirectly. - Late Mixin Loading: Registers the QDS mixin as a late UniMixins mixin so HQM classes are visible before the target is prepared.
- Inventory Gatekeeping: Overrides QDS item insertion validation and insertion handling.
- Fluid Gatekeeping: Overrides QDS fluid fill validation and fill handling.
- Scoped Behavior: The patch is limited to HQM's Quest Delivery System; unrelated HQM blocks should keep their normal behavior.
- Compatibility Target: Built and tested against Minecraft
1.7.10, Forge10.13.4.1614, UniMixins0.3.0, and HQM4.4.4.
QDS Input Protection
The QDS only accepts input when it can resolve an active bound QDS consume task:
- The QDS has a stored player name.
- The QDS resolves a current task.
- The current task is
QuestTaskItemsConsumeQDS. - The parent quest is available for that player.
- The task data is
QuestDataTaskItems. - The task is not already completed.
Items are checked against unmet item requirements using HQM's own ItemPrecision.areItemsSame rules. Fluids are checked against unmet fluid requirements by fluid id.
Valid progress is still applied through HQM's original task methods:
- Items use
QuestTaskItems.increaseItems. - Fluids use
QuestTaskItemsConsume.increaseFluid.
After successful progress, the QDS sync timer is scheduled just like HQM does internally.
Limits
- Automation that respects
IInventory.isItemValidForSlotorIFluidHandler.fillshould leave invalid input behind. - Automation that deletes source items before calling QDS insertion cannot be fully protected by the QDS itself.
- The mod does not reimplement HQM repeat timing; it follows HQM's quest availability and task progress state.


