Project structure
Real repository folders for GrzybcioRynek and plugin packages 1.0.3.
Based on GrzybcioRynek 1.0.3 and web 0.1.0 source.
The repository has three product directories: PLugin/, Strona/, Wiki/.
Top-level directories
| Folder | What it is | Version / license |
|---|---|---|
PLugin/ | Paper plugin (com.example.marketplace.MarketPlace) | 1.0.3, Apache 2.0 |
Strona/ | Next.js 16 mock UI (grybciorynek-web) | 0.1.0, private: true |
Wiki/ | This documentation (grybciorynek-wiki) | 1.0.3, private: true |
Strona/ does not read listings.yml and does not call the plugin. Data comes from src/lib/market/mock.ts.
PLugin/ — root files
PLugin/
├── build.gradle
├── settings.gradle # rootProject.name = 'GrzybcioRynek'
├── LICENSE # Apache License 2.0
├── README.md
├── opis.md # description + changelog 1.0.3 / 1.0.1
├── PLACEHOLDERS.md
└── bledy.md # test report on server/
No Gradlew. Build: gradle jar (toolchain Java 25). Artifact: build/libs/GrzybcioRynek-1.0.3.jar.
Java package
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 # dead code — unusedSellerNotifier exists in util/, but is never called. Sale notifications go through MarketManager.notifySeller and StorageManager.addPendingSaleNotification.
Plugin resources
PLugin/src/main/resources/
├── plugin.yml
├── config.yml
└── gui.yml
After startup, plugins/GrzybcioRynek/ also gets listings.yml and market-data.yml (plus .bak copies).
Strona/ — web mock
Version 0.1.0, private: true. The “API” layer is src/lib/market/api.ts over mock.ts. Login: localStorage key grzybciorynek.session (use-session.tsx). Web favorites: grzybciorynek.favorites — not the plugin’s favorites.
Wiki/
Next.js documentation. Navigation validation: npm run index (scripts/validate-docs.mjs checks that every href from src/lib/navigation.ts has a file under content/).