Skip to content

v0.1.9.5 - View-status fix + restart aligned with AE2

Latest

Choose a tag to compare

@HOMEFTW HOMEFTW released this 30 Apr 15:35

v0.1.9.5 - View-status button fix + restart aligned with AE2 (G15)

Two-bug release.

Bug A: post-restart View Status button click did nothing

Root cause. After a restart the player would click "View Status",
the client would set the openSmartCraftStatusOnNextSync flag and
send RequestOrderStatusPacket, the server would reply with a LIST
sync packet... and the client's list-packet handler did nothing with
the flag. Only the single-order sync path (used when submitting a new
order) consumed the flag and opened the dedicated status GUI.

This bug has actually been there since v0.1.7 introduced the multi-
order list packet; pre-v0.1.9 it stayed hidden because players almost
always submit a new order before clicking View Status, which routes
through the single-order path. v0.1.9.3 persistence + v0.1.9.4 login-
sync removed that workaround for restart cases and exposed it.

Fix. ClientProxy.applySmartCraftOrderList mirrors the GUI-open
logic from openSmartCraftStatus: when the flag is set, open
GuiSmartCraftStatus using the overlay's currently-focused order
packet as the initial data.

Bug B: align restart behavior with AE2 vanilla

User-chosen direction: AE2 doesn't persist crafting jobs across
restarts; cluster state resets and intermediate items stay inside
each cluster's storage for the player to manually cancel. Smart-craft
orders should mirror that semantic: persist for history visibility
only
, no auto-resume.

Implementation.

  • New SmartCraftOrder.interruptedByRestart boolean field, NBT-
    persisted (true only; missing tag reads as false for backward
    compatibility).
  • SmartCraftOrderManager.resetForRestart folds non-terminal tasks
    to CANCELLED with a "Interrupted by server restart" banner and
    marks the order itself CANCELLED + interruptedByRestart=true.
    Already-terminal orders (PAUSED / COMPLETED / etc.) keep their
    status untouched.
  • SmartCraftOrderManager.retryFailedTasks returns empty on
    interrupted orders; the player must submit a fresh order.
  • New SmartCraftRuntimeCoordinator.removeOrder(orderId) API drops
    an order from the manager outright + cleans session/retry state.
  • RequestSmartCraftActionPacket CANCEL_ORDER: routes to
    removeOrder for interrupted orders ("Remove from List"
    semantic) and to cancel for normal active orders.
  • SyncSmartCraftOrderPacket carries the new flag, appended at
    the end of the wire format with a readableBytes guard so a
    v0.1.9.4 client receiving a v0.1.9.5 packet falls through with
    the default false.

GUI.

  • Retry button greys out on interrupted orders.
  • Cancel button stays enabled but its label flips to "Remove from
    List" so the player understands the click drops the historical
    entry, not a live cancellation.
  • Status line gets a red "Interrupted by server restart (history-
    only)" tag so historical orders are visually distinct.

Tests

  • 5 new tests covering the new semantics: fold-to-CANCELLED, all-
    terminal-no-marker, retry rejection, NBT round-trip true / false.
  • 125 tests total, all green.

Migration

No action needed. Drop the new jar in. Existing v0.1.9.3+ saves
load transparently. Orders that were active at the v0.1.9.5 first
boot will appear as historical entries with the new red banner;
click "Remove from List" to clean them up, then submit fresh orders
for any work you still want done.

Artefacts

Jar Purpose
ae2intelligentscheduling-0.1.9.5.jar Player drop-in (notch obfuscation)
ae2intelligentscheduling-0.1.9.5-dev.jar SRG mappings, for development
ae2intelligentscheduling-0.1.9.5-sources.jar Source jar