Admin Tools
Podkomendy /market admin — list, inspect, remove, forceexpire, refund, selftest, reload.
Na podstawie kodu GrzybcioRynek 1.0.3 i web 0.1.0.
Wymagane: market.admin (default: op). Wejście: /market admin. Bez podkomendy — lista składni na czacie (tekst zahardkodowany, nie messages.*).
list
/market admin list
Wypisuje wszystkie aktywne oferty: #id, nick, cena Vault, Material × amount.
inspect <id>
/market admin inspect 42
Nagłówek: messages.admin.inspect-header ({id}). Potem (hardcoded): sprzedawca + UUID, item, cena, timestamp, nexoId, oraxenId, czy oferta jest zarezerwowana.
Brak oferty / złe ID: Nie znaleziono oferty. / Nieprawidłowe ID.
remove <id>
/market admin remove 42
MarketManager.removeListing jako admin: item wraca do sprzedawcy z powodem admin-removed. Zarezerwowana oferta: buy.listing-locked.
forceexpire <id>
/market admin forceexpire 42
Natychmiastowe wygaśnięcie: zdjęcie oferty, czyszczenie ulubionych, zwrot z powodem expired. Sukces: Oferta wygaszona. Porażka: Nie znaleziono oferty.
refund <tx-id> [reclaim]
/market admin refund 3f2a-…
/market admin refund 3f2a-… reclaim
Tylko TX w stanie COMPLETED bez error zaczynającego się od REFUND.
- Pobierz od sprzedawcy
sellerReceived(jeśli > 0). - Wpłać kupującemu tę kwotę (albo pełne
price, gdysellerReceived == 0). - Ustaw
error = REFUND:<timestamp>, stanROLLED_BACK.
reclaim: próbuje zabrać item z ekwipunku kupującego (jeśli online) i wrzuca kopię do skrzynki sprzedawcy (admin-refund). Jeśli kupujący itemu nie ma, i tak depozyt do skrzynki sprzedawcy — komunikat to zaznacza.
Nieudany withdraw sprzedawcy przerywa refund (bez zmiany TX). Nieudany deposit kupującego cofa withdraw sprzedawcy.
selftest [seller] [buyer]
/market admin selftest
/market admin selftest GraczA GraczB
Bez nicków: spawn FakePlayer SellerBot i BuyerBot (FakePlayerFactory), MarketSelfTest.run, potem despawn. Jeśli spawn się nie uda: użyj wariant z dwoma online graczami.
Obaj muszą być różni i online. To test integracyjny na żywym Vault / magazynie — nie używaj na produkcji z prawdziwymi kontami bez świadomości skutków (tworzy oferty i TX).
reload
To samo co /market reload: wymaga market.reload lub market.admin.
Zablokowane, gdy hasReservedListings() — trwa zakup. Najpierw backup .bak, potem reload YAML, na końcu removeExpiredListings.
Sukces: messages.reload.success.
Tab complete
Przy market.admin: list, inspect, remove, forceexpire, refund, selftest, reload. Dla inspect/remove/forceexpire: <id>. Dla refund: <transaction-id>.