smartqueue-1.7.0-NeoForge-1.21.1.jar
Curse Maven Snippet
What's new
Changelog – Queue System Fixes
Lock & Release Logic
- Fixed
tryAdmitLocked()not advancing proportional state (proportionalVipPhase/proportionalPhaseCount) when releasing a locked player; addedadvanceProportionalState()to synchronise state and prevent VIP indefinite priority. - Fixed
tryAdmitLocked()not checking normal slot limits (canAdmitNormal()) for regular players; normal players must now pass slot checks before being released. - Fixed reconnected normal players not being slot-checked in
admitFirstFrom(priorityQueue); addedadmitFirstPriorityChecked()to skip reconnected players who cannot enter. - Improved
getNextAdmitEntry()to prioritiselockedEntryand addedcanAdmitNormal()checks in both proportional and traditional branches, ensuring prediction matches actual admission.
Anti-Imbalance Counter Lifecycle
- Fixed
skippedNormalCountnot resetting to zero after queue emptied; now resets ononServerTickwhen no players are queued. - Fixed counter only decrementing via
admitOldestAny(); changed to decrement uniformly at theadmit()entry (all normal-admission paths now apply).
lockedEntry Lifecycle
- Fixed
cleanupDisconnectedalternate disconnection cleanup path not clearinglockedEntry; added null assignment. - Fixed
sendStatuslock condition only checkingnull, which left expiredDISCONNECTED-state locks active; changed to checklockedEntry == null || lockedEntry.state != WAITING.
Client Display & Prompts
- Added
QueuePayloads.blockedfield; insendStatus(), marksblockedwhen a regular player is first in line but cannot enter due to slot restrictions. - Client
QueueScreendetectsblockedand shows a yellow hint: "First in line, but waiting for an available slot…" (language file updated accordingly). - Fixed misleading Staff-only slot display (e.g., "Active players: 3 / 3 (Non-Staff: 3, Staff+1)"); now shows total cap and breakdown, e.g., "Active players: 3 / 4 (3+1)".
Certainty Indicators
- "Next" indicators in status display now distinguish certainty:
- Green
>>: certain to enter (only one type is queued, or both types can enter). - Yellow
?: uncertain (VIP and Normal are both queued but normal slots are full); across queues, priority order is used to select candidates, with at most one VIP candidate and one Normal candidate marked yellow globally.
- Green
isNextAdmitCertain()fully accounts forlockedEntry, VIP/Normal distinctions in priority queues, andDISCONNECTEDexclusion.
Dispatch Simulation Infinite Loop
- Fixed simulation dispatch entering an infinite loop up to max iterations when
canAdmitNormalNowisfalseand VIP queue is empty; changed to directly add remaining normal players to dispatch list when no VIP is available to switch.
All Relations
- All Relations
- Embedded Library
- Optional Dependency
- Required Dependency
- Tool
- Incompatible
- Include
This mod has no related projects

