Struktura projektu
Rzeczywiste foldery repozytorium GrzybcioRynek i pakiety pluginu 1.0.3.
Na podstawie kodu GrzybcioRynek 1.0.3 i web 0.1.0.
Repozytorium zawiera trzy katalogi produktu: PLugin/, Strona/, Wiki/.
Katalogi główne
| Folder | Co to jest | Wersja / licencja |
|---|---|---|
PLugin/ | Plugin Paper (com.example.marketplace.MarketPlace) | 1.0.3, Apache 2.0 |
Strona/ | Mock UI Next.js 16 (grybciorynek-web) | 0.1.0, private: true |
Wiki/ | Ta dokumentacja (grybciorynek-wiki) | 1.0.3, private: true |
Strona/ nie czyta listings.yml i nie woła pluginu. Dane pochodzą z src/lib/market/mock.ts.
PLugin/ — pliki w korzeniu
PLugin/
├── build.gradle
├── settings.gradle # rootProject.name = 'GrzybcioRynek'
├── LICENSE # Apache License 2.0
├── README.md
├── opis.md # opis + changelog 1.0.3 / 1.0.1
├── PLACEHOLDERS.md
└── bledy.md # raport testów na server/
Brak Gradlew. Budowa: gradle jar (toolchain Java 25). Artefakt: build/libs/GrzybcioRynek-1.0.3.jar.
Pakiet Java
PLugin/src/main/java/com/example/marketplace/
├── MarketPlace.java
├── api/
│ ├── MarketAPI.java
│ └── event/
│ ├── ListingCreatedEvent.java
│ ├── ListingRemovedEvent.java
│ └── TransactionCompletedEvent.java
├── commands/
│ ├── MarketCommand.java
│ ├── WystawCommand.java
│ └── AukcjeCommand.java
├── hooks/
│ ├── VaultHook.java
│ ├── NexoHook.java
│ ├── OraxenHook.java
│ ├── CustomItemsHook.java
│ └── PlaceholderHook.java
├── inventory/
│ ├── InventoryGUI.java
│ ├── InventoryButton.java
│ ├── InventoryHandler.java
│ ├── MarketCategory.java
│ ├── gui/
│ │ ├── GUIManager.java
│ │ └── GUIListener.java
│ └── impl/
│ ├── MarketBrowseGUI.java
│ ├── MarketCategoryGUI.java
│ ├── MarketDetailGUI.java
│ ├── MarketConfirmGUI.java
│ ├── MyListingsGUI.java
│ ├── FavoritesGUI.java
│ ├── HistoryGUI.java
│ ├── MailboxGUI.java
│ ├── AlertsGUI.java
│ ├── StatsGUI.java
│ └── SellerProfileGUI.java
├── listeners/
│ ├── ChatInputListener.java
│ └── PlayerJoinListener.java
├── managers/
│ ├── ConfigManager.java
│ ├── GuiConfigManager.java
│ ├── MessageManager.java
│ ├── MarketManager.java
│ ├── ListingQueryService.java
│ ├── StatsManager.java
│ ├── AntiAbuseManager.java
│ ├── MailboxService.java
│ ├── AlertService.java
│ ├── ChatInputManager.java
│ └── MarketSelfTest.java
├── model/
│ ├── MarketListing.java
│ ├── MarketTransaction.java
│ ├── TransactionState.java
│ ├── BrowseContext.java
│ ├── SortMode.java
│ ├── MailboxEntry.java
│ ├── PriceAlert.java
│ └── SellerRating.java
├── storage/
│ ├── StorageManager.java
│ └── ExtendedDataStore.java
└── util/
├── ItemBuilder.java
├── ItemStackSerializer.java
├── ItemSearchUtil.java
├── ListingLoreBuilder.java
├── InventoryUtil.java
├── TimeFormat.java
├── FakePlayerFactory.java
└── SellerNotifier.java # martwy kod — nieużywanySellerNotifier istnieje w util/, ale nie jest wołany. Powiadomienia o sprzedaży idą przez MarketManager.notifySeller i StorageManager.addPendingSaleNotification.
Zasoby pluginu
PLugin/src/main/resources/
├── plugin.yml
├── config.yml
└── gui.yml
Po starcie w plugins/GrzybcioRynek/ powstają dodatkowo listings.yml i market-data.yml (oraz kopie .bak).
Strona/ — mock WWW
Wersja 0.1.0, private: true. Warstwa „API” to src/lib/market/api.ts nad mock.ts. Logowanie: localStorage klucz grzybciorynek.session (use-session.tsx). Ulubione WWW: grzybciorynek.favorites — nie te z pluginu.
Wiki/
Dokumentacja Next.js. Walidacja nawigacji: npm run index (scripts/validate-docs.mjs sprawdza, czy każdy href z src/lib/navigation.ts ma plik w content/).