Mailbox
Skrzynka zwrotów — powody, GUI, pending-returns gdy mailbox.enabled jest false.
Na podstawie kodu GrzybcioRynek 1.0.3 i web 0.1.0.
Skrzynka trzyma itemy, których nie dało się oddać od razu do ekwipunku. Serwis: MailboxService. Dane: market-data.yml → mailbox.<uuid>. GUI: MailboxGUI (54 sloty).
market.mailbox z plugin.yml nie jest sprawdzane w Javie.
Flaga mailbox.enabled
Domyślnie true.
enabled | Co się dzieje przy deposit |
|---|---|
true | Wpis do skrzynki w market-data.yml |
false | Gracz online: addItem, reszta drop pod nogi. Offline: listings.yml → pending-returns.<uuid> |
Komenda /market mailbox i przycisk browse (slot 48) otwierają GUI niezależnie od flagi. Flaga steruje dostarczaniem, nie widocznością menu.
Powody (reason)
| Powód | Skąd |
|---|---|
expired | Timer wygaśnięcia / forceexpire |
removed | Właściciel usunął ofertę (/market remove) |
admin-removed | /market admin remove |
admin-refund | /market admin refund … reclaim — item do skrzynki sprzedawcy |
purchase-overflow | Zakup: addItem nie wcisnął całego stacka (po wcześniejszym canFit) |
Lore GUI: messages.gui.mailbox.lore.reason z {reason}.
GUI
| Slot | Rola |
|---|---|
| 10–16, 19–25, 28–34 | Wpisy (hardcoded) |
| 45 | Wstecz |
| 48 / 50 | Strony |
| 49 | Odbierz wszystko (claimAll) |
| 53 | Wskaźnik strony |
Klik = MailboxService.claim (atomowo zdejmuje wpis, przy braku miejsca przywraca + mailbox.inventory-full). Shift+klik = relist: zdejmuje wpis, pyta o cenę na czacie (relist.prompt). cancel / anuluj → relist.cancelled i przywrócenie wpisu.
Pusta skrzynka: messages.mailbox.empty (barrier na slocie 22).
Wejście na serwer
PlayerJoinListener:
- hint
messages.mailbox.join-hint({count}) gdy są wpisy, - dostarczenie
pending-returns(gdy skrzynka była wyłączona), - powiadomienia
pending-sales(sprzedaż gdy sprzedawca był offline); legacypending-sales.by-namejest czyszczone przy joinie.
Odbiór
claim wymaga miejsca (InventoryUtil.canFit). claimAll przerywa na pierwszym nieudanym odbiorze.
Sukces: mailbox.claimed ({item}). Nowy depozyt online: mailbox.received.