473 lines
11 KiB
YAML
473 lines
11 KiB
YAML
settings:
|
|
debug: false
|
|
|
|
payment:
|
|
poll-seconds: 30
|
|
invoice-expire-minutes: 30
|
|
confirmations-required: 2
|
|
max-pending-per-player: 1
|
|
allow-cancel: true
|
|
auto-close-paid-invoice-seconds: 5
|
|
mark-expired-on-open: true
|
|
strict-exact-amount-match: true
|
|
allow-late-match-if-unclaimed: true
|
|
late-match-grace-minutes: 120
|
|
|
|
pricing:
|
|
mode: "LIVE_USD"
|
|
live-rate-provider: "COINGECKO"
|
|
cache-seconds: 60
|
|
fallback-to-base-sats: true
|
|
round-up-to-sat: true
|
|
coingecko-url: "https://api.coingecko.com/api/v3/simple/price?ids=bitcoin&vs_currencies=usd"
|
|
|
|
micro-amount:
|
|
mode: "RANDOM_RANGE"
|
|
min-extra-sats: 1
|
|
max-extra-sats: 200
|
|
sequential-start-sats: 1
|
|
sequential-reset-when-server-restarts: false
|
|
avoid-duplicate-active-amounts: true
|
|
max-generation-attempts: 500
|
|
|
|
storage:
|
|
type: "SQLITE"
|
|
sqlite-file: "dirtcryptostore.db"
|
|
prune-enabled: true
|
|
prune-after-days: 30
|
|
prune-statuses:
|
|
- "FULFILLED"
|
|
- "EXPIRED"
|
|
- "CANCELLED"
|
|
|
|
qr:
|
|
enabled: true
|
|
map-title: "&8Crypto QR"
|
|
include-bitcoin-uri-in-lore: true
|
|
include-wallet-address-in-lore: true
|
|
include-expiry-in-lore: true
|
|
include-confirmations-in-lore: true
|
|
show-qr-item-in-payment-gui: true
|
|
fallback-material-if-map-fails: "PAPER"
|
|
|
|
blockchain:
|
|
watcher-mode: "API"
|
|
provider: "BLOCKCHAIN_INFO"
|
|
request-timeout-seconds: 10
|
|
user-agent: "DirtCryptoStore/1.0.0"
|
|
wallet-cache-seconds: 20
|
|
tx-cache-seconds: 20
|
|
|
|
commands:
|
|
dispatch-as-console: true
|
|
stop-on-command-failure: false
|
|
log-dispatch: true
|
|
|
|
hooks:
|
|
use-placeholderapi-if-present: false
|
|
use-luckperms-context-if-present: false
|
|
|
|
wallets:
|
|
default:
|
|
enabled: true
|
|
display-name: "&6Bitcoin Wallet"
|
|
coin: "BTC"
|
|
address: "PUT_YOUR_CAKE_WALLET_BTC_ADDRESS_HERE"
|
|
explorer-type: "BTC"
|
|
min-confirmations: 2
|
|
allow-products: ["tip_jar", "gold_dust", "dirt_rich"]
|
|
|
|
messages:
|
|
prefix: "&8[&6DirtCryptoStore&8] "
|
|
|
|
no-permission: "&cYou do not have permission."
|
|
player-only: "&cOnly players can use this command."
|
|
reloaded: "&aDirtCryptoStore reloaded."
|
|
opening-store: "&aOpening crypto store..."
|
|
admin-reload-usage: "&eUse: /cryptostore reload"
|
|
|
|
already-has-pending: "&cYou already have a pending payment."
|
|
no-pending-payment: "&cYou do not have a pending payment."
|
|
invoice-created: "&aInvoice created for &f%product%&a."
|
|
invoice-expired: "&cThis payment request expired."
|
|
invoice-cancelled: "&eYour pending payment was cancelled."
|
|
invoice-paid-already: "&eThis invoice is already paid."
|
|
invoice-view-only: "&eThis invoice can no longer be changed."
|
|
pricing-unavailable: "&cLive BTC pricing is currently unavailable. Please try again in a moment."
|
|
|
|
payment-detected: "&aPayment detected for &f%product%&a. Waiting for confirmations..."
|
|
payment-confirmed: "&aYour crypto payment for &f%product% &ahas been confirmed."
|
|
payment-fulfilled: "&aYour purchase has been delivered."
|
|
payment-under-review: "&cThis payment requires staff review."
|
|
payment-not-found-yet: "&7No matching payment detected yet."
|
|
payment-status-waiting: "&eStatus: WAITING"
|
|
payment-status-detected: "&aStatus: DETECTED"
|
|
payment-status-confirming: "&6Status: CONFIRMING"
|
|
payment-status-paid: "&aStatus: PAID"
|
|
payment-status-expired: "&cStatus: EXPIRED"
|
|
payment-status-cancelled: "&cStatus: CANCELLED"
|
|
|
|
qr-expiry-line: "&7Expires in: &f%time%"
|
|
confirm-line: "&7Required confirmations: &f%confirmations%"
|
|
wallet-line: "&7Wallet: &f%wallet%"
|
|
wallet-address-line: "&7Address: &f%address%"
|
|
amount-line: "&7Amount: &f%amount%"
|
|
amount-sats-line: "&7Amount (sats): &f%amount_sats%"
|
|
product-line: "&7Product: &f%product%"
|
|
txid-line: "&7TXID: &f%txid%"
|
|
|
|
gui-cancel-button: "&cCancel Payment"
|
|
gui-back-button: "&eBack"
|
|
gui-close-button: "&cClose"
|
|
gui-refresh-button: "&bRefresh"
|
|
gui-confirmed-button: "&aPaid"
|
|
gui-expired-button: "&cExpired"
|
|
gui-pending-button: "&ePending"
|
|
|
|
sounds:
|
|
enabled: true
|
|
|
|
store-open:
|
|
sound: "BLOCK_ENDER_CHEST_OPEN"
|
|
volume: 1.0
|
|
pitch: 1.0
|
|
|
|
click:
|
|
sound: "UI_BUTTON_CLICK"
|
|
volume: 1.0
|
|
pitch: 1.0
|
|
|
|
invoice-created:
|
|
sound: "ENTITY_EXPERIENCE_ORB_PICKUP"
|
|
volume: 1.0
|
|
pitch: 1.2
|
|
|
|
payment-detected:
|
|
sound: "BLOCK_NOTE_BLOCK_PLING"
|
|
volume: 1.0
|
|
pitch: 1.5
|
|
|
|
payment-confirmed:
|
|
sound: "ENTITY_PLAYER_LEVELUP"
|
|
volume: 1.0
|
|
pitch: 1.0
|
|
|
|
cancelled:
|
|
sound: "ENTITY_VILLAGER_NO"
|
|
volume: 1.0
|
|
pitch: 1.0
|
|
|
|
expired:
|
|
sound: "BLOCK_ANVIL_LAND"
|
|
volume: 0.7
|
|
pitch: 1.0
|
|
|
|
effects:
|
|
enabled: true
|
|
|
|
store-open:
|
|
enabled: false
|
|
type: "VILLAGER_HAPPY"
|
|
count: 10
|
|
offset-x: 0.3
|
|
offset-y: 0.6
|
|
offset-z: 0.3
|
|
extra: 0.0
|
|
|
|
invoice-created:
|
|
enabled: true
|
|
type: "TOTEM_OF_UNDYING"
|
|
count: 12
|
|
offset-x: 0.4
|
|
offset-y: 0.8
|
|
offset-z: 0.4
|
|
extra: 0.0
|
|
|
|
payment-detected:
|
|
enabled: true
|
|
type: "COMPOSTER"
|
|
count: 8
|
|
offset-x: 0.3
|
|
offset-y: 1.0
|
|
offset-z: 0.3
|
|
extra: 0.0
|
|
|
|
payment-confirmed:
|
|
enabled: true
|
|
type: "FIREWORK"
|
|
count: 20
|
|
offset-x: 0.5
|
|
offset-y: 1.0
|
|
offset-z: 0.5
|
|
extra: 0.0
|
|
|
|
cancelled:
|
|
enabled: false
|
|
type: "SMOKE"
|
|
count: 8
|
|
offset-x: 0.2
|
|
offset-y: 0.4
|
|
offset-z: 0.2
|
|
extra: 0.0
|
|
|
|
expired:
|
|
enabled: false
|
|
type: "SMOKE"
|
|
count: 8
|
|
offset-x: 0.2
|
|
offset-y: 0.4
|
|
offset-z: 0.2
|
|
extra: 0.0
|
|
|
|
titles:
|
|
enabled: true
|
|
|
|
invoice-created:
|
|
title: "&6Crypto Invoice"
|
|
subtitle: "&7Scan the QR and pay the exact amount"
|
|
fade-in: 10
|
|
stay: 50
|
|
fade-out: 10
|
|
|
|
payment-detected:
|
|
title: "&aPayment Detected"
|
|
subtitle: "&7Waiting for confirmations"
|
|
fade-in: 10
|
|
stay: 40
|
|
fade-out: 10
|
|
|
|
payment-confirmed:
|
|
title: "&aPayment Confirmed"
|
|
subtitle: "&fYour purchase has been delivered"
|
|
fade-in: 10
|
|
stay: 60
|
|
fade-out: 10
|
|
|
|
cancelled:
|
|
title: "&cPayment Cancelled"
|
|
subtitle: "&7Your pending invoice was cancelled"
|
|
fade-in: 10
|
|
stay: 40
|
|
fade-out: 10
|
|
|
|
gui:
|
|
use-custom-model-data: false
|
|
|
|
store:
|
|
title: "&8Crypto Store"
|
|
size: 27
|
|
open-sound: true
|
|
|
|
items:
|
|
filler:
|
|
enabled: true
|
|
material: "GRAY_STAINED_GLASS_PANE"
|
|
name: " "
|
|
lore: []
|
|
slots:
|
|
- 0
|
|
- 1
|
|
- 2
|
|
- 3
|
|
- 4
|
|
- 5
|
|
- 6
|
|
- 7
|
|
- 8
|
|
- 9
|
|
- 17
|
|
- 18
|
|
- 19
|
|
- 20
|
|
- 21
|
|
- 22
|
|
- 23
|
|
- 24
|
|
- 25
|
|
- 26
|
|
|
|
close:
|
|
enabled: true
|
|
material: "BARRIER"
|
|
name: "&cClose"
|
|
lore:
|
|
- "&7Close the store."
|
|
slot: 26
|
|
|
|
refresh:
|
|
enabled: true
|
|
material: "SUNFLOWER"
|
|
name: "&eRefresh"
|
|
lore:
|
|
- "&7Refresh the store view."
|
|
slot: 18
|
|
|
|
info:
|
|
enabled: true
|
|
material: "BOOK"
|
|
name: "&6How Crypto Payments Work"
|
|
lore:
|
|
- "&7Click a product to create a payment invoice."
|
|
- "&7You must send the exact amount shown."
|
|
- "&7Your QR expires after &f30 minutes&7."
|
|
- "&7You can cancel your payment from the payment menu."
|
|
slot: 22
|
|
|
|
payment:
|
|
title: "&8Crypto Payment"
|
|
size: 27
|
|
|
|
items:
|
|
filler:
|
|
enabled: true
|
|
material: "BLACK_STAINED_GLASS_PANE"
|
|
name: " "
|
|
lore: []
|
|
slots:
|
|
- 0
|
|
- 1
|
|
- 2
|
|
- 3
|
|
- 4
|
|
- 5
|
|
- 6
|
|
- 7
|
|
- 8
|
|
- 9
|
|
- 17
|
|
- 18
|
|
- 20
|
|
- 24
|
|
- 25
|
|
- 26
|
|
|
|
product:
|
|
enabled: true
|
|
material: "CHEST"
|
|
name: "&6Purchase Details"
|
|
lore:
|
|
- "&7Product: &f%product%"
|
|
- "&7Price: &f%amount%"
|
|
- "&7Wallet: &f%wallet%"
|
|
- "&7Address: &f%address%"
|
|
- "&7Status: &f%status%"
|
|
- "&7Expires in: &f%time%"
|
|
slot: 11
|
|
|
|
qr:
|
|
enabled: true
|
|
material: "FILLED_MAP"
|
|
name: "&aScan QR To Pay"
|
|
lore:
|
|
- "&7Scan this QR with your wallet app."
|
|
- "&7"
|
|
- "&7Amount: &f%amount%"
|
|
- "&7Address: &f%address%"
|
|
- "&7"
|
|
- "&7If your wallet does not scan maps well,"
|
|
- "&7use the URI manually:"
|
|
- "&f%bitcoin_uri%"
|
|
slot: 13
|
|
|
|
status:
|
|
enabled: true
|
|
material: "CLOCK"
|
|
name: "&ePayment Status"
|
|
lore:
|
|
- "&7Current: &f%status%"
|
|
- "&7TXID: &f%txid%"
|
|
- "&7Confirmations: &f%current_confirmations%/%confirmations%"
|
|
- "&7Expires in: &f%time%"
|
|
slot: 15
|
|
|
|
back:
|
|
enabled: true
|
|
material: "ARROW"
|
|
name: "&eBack"
|
|
lore:
|
|
- "&7Return to the store."
|
|
slot: 18
|
|
|
|
cancel:
|
|
enabled: true
|
|
material: "BARRIER"
|
|
name: "&cCancel Payment"
|
|
lore:
|
|
- "&7Cancel this pending payment."
|
|
slot: 22
|
|
|
|
refresh:
|
|
enabled: true
|
|
material: "SUNFLOWER"
|
|
name: "&bRefresh Status"
|
|
lore:
|
|
- "&7Refresh this payment screen."
|
|
slot: 26
|
|
|
|
products:
|
|
tip_jar:
|
|
enabled: true
|
|
display-name: "&aTip Jar"
|
|
material: "EMERALD"
|
|
custom-model-data: 0
|
|
glow: true
|
|
slot: 11
|
|
wallet: "default"
|
|
price-usd: 3.49
|
|
base-sats: 15000
|
|
permission-required: ""
|
|
purchasable-once: false
|
|
commands:
|
|
- "lp user %player% parent add tipjar"
|
|
lore:
|
|
- "&7Buy the &aTip Jar &7rank with crypto."
|
|
- "&7Normal store price: &c$4.99"
|
|
- "&7Crypto store price: &a$3.49"
|
|
- "&7Wallet: &f%wallet%"
|
|
- "&7Approx base amount: &f%amount%"
|
|
- "&7Click to generate a live-priced invoice."
|
|
|
|
gold_dust:
|
|
enabled: true
|
|
display-name: "&bGold Dust"
|
|
material: "GOLD_INGOT"
|
|
custom-model-data: 0
|
|
glow: true
|
|
slot: 13
|
|
wallet: "default"
|
|
price-usd: 6.99
|
|
base-sats: 27000
|
|
permission-required: ""
|
|
purchasable-once: false
|
|
commands:
|
|
- "lp user %player% parent add golddust"
|
|
lore:
|
|
- "&7Buy the &bGold Dust &7rank with crypto."
|
|
- "&7Normal store price: &c$9.99"
|
|
- "&7Crypto store price: &a$6.99"
|
|
- "&7Wallet: &f%wallet%"
|
|
- "&7Approx base amount: &f%amount%"
|
|
- "&7Click to generate a live-priced invoice."
|
|
|
|
dirt_rich:
|
|
enabled: true
|
|
display-name: "&6Dirt Rich"
|
|
material: "DIAMOND"
|
|
custom-model-data: 0
|
|
glow: false
|
|
slot: 15
|
|
wallet: "default"
|
|
price-usd: 13.99
|
|
base-sats: 9750
|
|
permission-required: ""
|
|
purchasable-once: false
|
|
commands:
|
|
- "lp user %player% parent add dirtrich"
|
|
lore:
|
|
- "&7Buy the &6Dirt Rich &7rank with crypto."
|
|
- "&7Normal store price: &c$19.99"
|
|
- "&7Crypto store price: &a$13.99"
|
|
- "&7Wallet: &f%wallet%"
|
|
- "&7Approx base amount: &f%amount%"
|
|
- "&7Click to generate a live-priced invoice."
|