BankSeller 1.0.5: support F2P trade-restricted accounts - #528
Conversation
- Detect the per-item trade-restriction notice in the sell offer setup and skip to the next inventory item without leaving the GE screen - List every offer at 50% of the actively traded price for instant fills - Sell each item's full stack in a single offer - Abort leftover unsold offers at the end, re-list them at 1gp, then collect and stop - Wait for pending offers and collect coins before stopping; final chatbox verdict when the bank is fully processed
5a29015 to
d868d3d
Compare
|
Thanks — the build and live-session results look good, but I found one merge-blocking safety issue in the forced-liquidation path. In There is also a smaller reliability issue in Once those paths are isolated from pre-existing offers and transient failures, this should be in much safer shape to merge. |
…failures Address review on chsami#528: - liquidateLeftoverOffers() no longer calls abortAllOffers(). Slots occupied when the plugin starts are snapshotted as foreign, and the liquidation now only aborts, collects and re-lists slots that hold an item this run actually listed. Aborts are slot-targeted (no collect-all), collection is per-slot to the inventory, and the 1gp re-list pass is filtered to owned items, so pre-existing or other plugins' offers can no longer be aborted or have their contents sold at 1gp. Completed unrelated offers are likewise never collected into the liquidation inventory. - placeSellOffer() now distinguishes a genuine refusal from a transient UI failure. Only the explicit trade-restriction notice marks an item unsellable. A setup that never opens or a widget timeout is retried and, after repeated failures, the item is just parked for the session instead of populating unsellableItemIds.
chsami
left a comment
There was a problem hiding this comment.
The second commit fixes the slot-targeted abort path, but foreign completed offers are still collected globally. and both call . A pre-existing completed buy offer can therefore be collected into the bank, withdrawn by the normal bank scan, and sold by BankSeller; a foreign completed offer is also cleared despite the stated isolation. Please collect only completed slots owned by this run (or refuse startup unless every GE slot is empty) and keep foreign slots untouched throughout, not only during liquidation.
|
Clarification to the requested-changes review: the affected methods are collectSoldOffers and collectPendingOffers, and the global call is Rs2GrandExchange.collectAllToBank. The shell formatting stripped those names from the submitted review, but the safety finding is unchanged. |
|
Requested changes summary: foreign Grand Exchange offers are still not fully isolated. collectSoldOffers and collectPendingOffers call Rs2GrandExchange.collectAllToBank, so a pre-existing completed buy offer can be collected, withdrawn during the bank scan, and sold. Please collect only completed slots owned by this run, or require all GE slots to be empty at startup. |
chsami
left a comment
There was a problem hiding this comment.
Re-reviewed current head 99e3f18. The previously blocking foreign-offer collection path is now isolated by startup slot ownership, canonical item identity, targeted per-slot collection, fail-closed client reads, and paced overview rebuilds. Expected CI is green; git diff --check and a clean targeted BankSellerPlugin build against Microbot 2.6.20 passed locally.
Updates the Bank Seller plugin to 1.0.5, tested live on a new F2P trade-restricted account.
What changed
Only files under
bankseller/(plus its docs readme) are touched.Testing steps
./gradlew build -PpluginList=BankSellerPlugin(JDK 11, client 2.6.20).Review follow-up
Collection pacing follow-up