Initial Realease
This commit is contained in:
@@ -0,0 +1,194 @@
|
||||
# CommunityMarket
|
||||
|
||||
A professional, production-ready GUI-only marketplace plugin for Minecraft Paper 1.21.11.
|
||||
|
||||
Players can create fixed-price listings and auctions, browse, buy, bid, claim items, and withdraw earnings — all through intuitive GUIs. No complex commands to learn!
|
||||
|
||||
## Features
|
||||
|
||||
### 🛒 Fixed-Price Market
|
||||
- Create listings with custom prices and durations
|
||||
- Browse paginated listings with categories and sorting
|
||||
- Safe atomic purchases to prevent double-buying
|
||||
- Configurable taxes on sales
|
||||
|
||||
### 🔨 Auction System
|
||||
- Start auctions with minimum bid and optional buyout
|
||||
- Anti-snipe protection extends auction when bids arrive near the end
|
||||
- Bid history and automatic outbid notifications
|
||||
- Safe handling of auction endings and payouts
|
||||
|
||||
### 📦 Claim Storage
|
||||
- Items from expired listings go to claim storage
|
||||
- Won auction items are safely delivered
|
||||
- Handles full inventories gracefully
|
||||
|
||||
### 💰 Earnings Management
|
||||
- Pending earnings from sales
|
||||
- Withdraw all at once
|
||||
- Complete transaction history
|
||||
|
||||
### 🔐 Admin Features (GUI-based)
|
||||
- View all listings and auctions
|
||||
- Remove any listing
|
||||
- Cancel/force-end auctions
|
||||
- Reload configuration
|
||||
|
||||
### 🎮 Intuitive GUI Flow
|
||||
The creation flow for listings and auctions:
|
||||
1. **Main Menu** - Central hub for all actions
|
||||
2. **Select Item** - Click an item from your inventory to select it
|
||||
3. **Select Quantity** - Choose how many to sell (skipped for unstackable items)
|
||||
4. **Settings** - Set price and duration with merged, clickable elements
|
||||
5. **Confirm** - Review and confirm your listing/auction
|
||||
|
||||
## Requirements
|
||||
|
||||
- **Server**: Paper 1.21.11 (or compatible)
|
||||
- **Java**: Java 21
|
||||
- **Economy**: One of the following:
|
||||
- Vault + any Vault-compatible economy (Essentials, CMI, etc.)
|
||||
- EssentialsX (fallback if Vault is not present)
|
||||
|
||||
## Installation
|
||||
|
||||
1. Download `CommunityMarket-1.0.0.jar`
|
||||
2. Place it in your server's `plugins/` folder
|
||||
3. Ensure you have an economy plugin installed (Vault recommended)
|
||||
4. Start/restart your server
|
||||
5. Edit `plugins/CommunityMarket/config.yml` as needed
|
||||
6. Use `/market` to open the marketplace!
|
||||
|
||||
## Commands
|
||||
|
||||
| Command | Alias | Description | Permission |
|
||||
|---------|-------|-------------|------------|
|
||||
| `/market` | `/cmarket` | Opens the main market GUI | `communitymarket.use` |
|
||||
|
||||
**That's it!** Everything else is done through GUIs.
|
||||
|
||||
## Permissions
|
||||
|
||||
| Permission | Description | Default |
|
||||
|------------|-------------|---------|
|
||||
| `communitymarket.*` | All permissions | op |
|
||||
| `communitymarket.use` | Access the market GUI | true |
|
||||
| `communitymarket.sell` | Create fixed-price listings | true |
|
||||
| `communitymarket.auction` | Create auctions | true |
|
||||
| `communitymarket.buy` | Purchase from the market | true |
|
||||
| `communitymarket.bid` | Bid on auctions | true |
|
||||
| `communitymarket.claim` | Claim items from storage | true |
|
||||
| `communitymarket.withdraw` | Withdraw earnings | true |
|
||||
| `communitymarket.admin` | Access admin functions | op |
|
||||
| `communitymarket.admin.viewall` | View all listings/auctions | op |
|
||||
| `communitymarket.admin.remove` | Remove any listing/auction | op |
|
||||
| `communitymarket.admin.reload` | Reload configuration | op |
|
||||
|
||||
## Configuration
|
||||
|
||||
### config.yml
|
||||
|
||||
```yaml
|
||||
# Language setting (available: en_US, pt_PT)
|
||||
language: en_US
|
||||
|
||||
# Database Configuration
|
||||
database:
|
||||
type: sqlite # or "mysql"
|
||||
sqlite:
|
||||
file: database.db
|
||||
mysql:
|
||||
host: localhost
|
||||
port: 3306
|
||||
database: communitymarket
|
||||
username: root
|
||||
password: ""
|
||||
|
||||
# Economy Settings
|
||||
economy:
|
||||
currency-format: "$#,##0.00"
|
||||
currency-symbol: "$"
|
||||
taxes:
|
||||
market-tax: 5.0 # 5% tax on listings
|
||||
auction-tax: 7.5 # 7.5% tax on auctions
|
||||
|
||||
# Market Settings
|
||||
market:
|
||||
max-listings-per-player: 20
|
||||
listing-cooldown: 0 # seconds between listings
|
||||
default-duration-hours: 168 # 7 days
|
||||
min-price: 1.0
|
||||
max-price: 1000000000.0
|
||||
|
||||
# Auction Settings
|
||||
auction:
|
||||
max-auctions-per-player: 10
|
||||
min-duration-hours: 1
|
||||
max-duration-hours: 168
|
||||
anti-snipe:
|
||||
enabled: true
|
||||
trigger-seconds: 30
|
||||
extension-seconds: 30
|
||||
max-extensions: 10
|
||||
|
||||
# GUI Settings
|
||||
gui:
|
||||
items-per-page: 45
|
||||
show-help-button: true # Set to false to hide help button in main menu
|
||||
```
|
||||
|
||||
See the full `config.yml` for all options.
|
||||
|
||||
### Languages
|
||||
|
||||
CommunityMarket ships with two languages:
|
||||
- **English (US)**: `en_US`
|
||||
- **Portuguese (Portugal)**: `pt_PT`
|
||||
|
||||
Change the language in `config.yml`:
|
||||
```yaml
|
||||
language: pt_PT
|
||||
```
|
||||
|
||||
You can create custom language files by copying an existing one in `plugins/CommunityMarket/lang/`.
|
||||
|
||||
## Building from Source
|
||||
|
||||
```bash
|
||||
git clone https://github.com/henrique/CommunityMarket.git
|
||||
cd CommunityMarket
|
||||
mvn clean package
|
||||
```
|
||||
|
||||
The compiled JAR will be in `target/CommunityMarket-1.0.0.jar`.
|
||||
|
||||
## FAQ
|
||||
|
||||
### Q: The plugin says "No economy plugin found!"
|
||||
**A:** Install Vault + an economy plugin (like EssentialsX) or just EssentialsX.
|
||||
|
||||
### Q: Can I use MySQL instead of SQLite?
|
||||
**A:** Yes! Change `database.type` to `mysql` in config.yml and fill in your credentials.
|
||||
|
||||
### Q: How do I change the GUI titles?
|
||||
**A:** Edit the language file in `plugins/CommunityMarket/lang/`.
|
||||
|
||||
### Q: Items aren't being removed when creating listings?
|
||||
**A:** This is a known issue with some inventory plugins. Make sure you're running Paper 1.21.11.
|
||||
|
||||
### Q: How do taxes work?
|
||||
**A:** When an item sells, the tax percentage is deducted from the seller's earnings. Buyers pay the listed price.
|
||||
|
||||
## Support
|
||||
|
||||
- **Issues**: [GitHub Issues](https://github.com/henrique/CommunityMarket/issues)
|
||||
- **Discord**: Coming soon
|
||||
|
||||
## License
|
||||
|
||||
MIT License - See LICENSE file for details.
|
||||
|
||||
---
|
||||
|
||||
Made with ❤️ for the Minecraft community
|
||||
|
||||
Reference in New Issue
Block a user