100 lines
1.7 KiB
Markdown
100 lines
1.7 KiB
Markdown
# DirtCryptoStore
|
||
|
||
DirtCryptoStore is a Paper 1.21.x crypto shop plugin.
|
||
|
||
## Features
|
||
|
||
- GUI crypto store
|
||
- Live BTC/USD pricing
|
||
- Unique BTC invoice amounts per player
|
||
- QR map generation
|
||
- QR placed in player off-hand
|
||
- SQLite storage
|
||
- Expired invoice pruning
|
||
- Auto payment watching
|
||
- Admin review tools
|
||
|
||
## Requirements
|
||
|
||
- Paper 1.21.x
|
||
- Java 21
|
||
- Maven 3.8.7+
|
||
|
||
## Build
|
||
|
||
mvn clean package
|
||
|
||
Jar:
|
||
target/DirtCryptoStore.jar
|
||
|
||
## Install
|
||
|
||
1. Put the jar in your server plugins folder
|
||
2. Start the server
|
||
3. Edit plugins/DirtCryptoStore/config.yml
|
||
4. Restart the server or use /cryptostore reload
|
||
|
||
## Player Commands
|
||
|
||
/cryptostore
|
||
Opens the store GUI
|
||
|
||
/cryptostore status
|
||
Shows the player’s pending invoice status
|
||
|
||
## Admin Commands
|
||
|
||
/cryptostore reload
|
||
Reloads plugin config and watcher
|
||
|
||
/cryptostore review
|
||
Shows invoices marked UNDER_REVIEW
|
||
|
||
/cryptostore forceconfirm <invoiceId>
|
||
Manually fulfills an invoice
|
||
|
||
/cryptostore cancelinvoice <invoiceId>
|
||
Cancels an invoice
|
||
|
||
## Permissions
|
||
|
||
dirtcryptostore.use
|
||
Default: true
|
||
|
||
dirtcryptostore.admin
|
||
Default: op
|
||
|
||
dirtcryptostore.bypass
|
||
Reserved for future use
|
||
|
||
## Payment Flow
|
||
|
||
1. Player runs /cryptostore
|
||
2. Player clicks a product
|
||
3. Plugin converts USD price to BTC
|
||
4. Plugin adds a unique sat offset
|
||
5. Invoice is created
|
||
6. QR map is placed in off-hand
|
||
7. Player pays exact BTC amount
|
||
8. Plugin watches blockchain
|
||
9. After confirmations, commands run
|
||
|
||
## Storage
|
||
|
||
SQLite database file:
|
||
plugins/DirtCryptoStore/dirtcryptostore.db
|
||
|
||
## Pruning
|
||
|
||
Old invoices can be pruned with config options:
|
||
- prune-enabled
|
||
- prune-after-days
|
||
- prune-statuses
|
||
|
||
## Notes
|
||
|
||
- BTC-focused
|
||
- Live pricing uses CoinGecko
|
||
- Payment watching uses blockchain.info
|
||
- Large public deployments should later add provider fallback and audit logging
|