Vai al contenuto
ShadowMC

Configurazione

ShadowEconomy

Soldi, negozi, aste, affitti e borsa. Un'economia intera in un jar.

Gratuito con Premium v1.0.4

Dove sono i file

plugins/ShadowEconomy/

Il plugin li crea al primo avvio e li aggiorna da solo alle nuove versioni, senza toccare le tue modifiche.

Applicare le modifiche

/eco reload

Rilegge i file senza riavviare il server.

Cosa c’è dentro

20 file · 364 impostazioni

Da dove partire: config.yml

Impostazioni

I file che decidono come si comporta il plugin. Si parte da qui.

config.yml

Impostazioni generali
68 impostazioni
plugins/ShadowEconomy/config.yml
Note del file

In caso di aggiornamento, questo file (come ogni altro file del plugin) viene portato alla nuova versione in automatico: viene ricostruito da quello nuovo e tutto quello che avevi cambiato o aggiunto viene riportato dentro. I vecchi file vengono conservati in backup/<date>/, e se qualcosa richiede la tua attenzione troverai PORTING-<version>.txt in questa cartella, con scritto cosa sistemare.

Un valore sbagliato non blocca nulla: viene sostituito da quello di fabbrica e segnalato in console all'avvio, con il percorso e cosa ci si aspettava.

Tutto qui - chiavi, sezioni e commenti - è in inglese, perché lo legge chi gestisce il server, in qualunque parte del mondo si trovi. Le parole che vedono i giocatori stanno in lang/, e di default sono in inglese; è incluso anche l'italiano (messages.default-locale qui sotto).

config-version1

Licenza

Senza chiave gira la versione FREE: portafogli, /pay, cronologia, classifica, lo shop del server e i chest shop, fino a 30 giocatori online, 3 chest shop a testa e una sola valuta.

Continua a leggere

Una chiave firmata attiva la casa d'aste, il distretto in affitto, l'exchange, il mining, i token, la banca, MySQL e la sincronizzazione multi-server.

Di solito la chiave NON va messa qui: /eco license claim <code> la scrive da solo in license.yml, che è un file separato apposta - una config si manda al supporto, una licenza no.

license4 chiavi

LA CHIAVE VIVE IN license.yml (stessa cartella di questo file), oppure nel file centrale plugins/ShadowControl/licenses.yml per tutta la suite. La 'key' qui sotto è solo un ripiego per i sistemi di deploy che generano config.yml: lasciala vuota.

La chiave NON sta qui: sta in license.yml, in questa cartella, scritto al primo avvio (o in plugins/ShadowControl/licenses.yml per tutta la suite). Lasciala vuota: serve solo a chi preferisce tenere tutto in un'unica config.

grace-days7

Giorni di tolleranza quando un abbonamento è appena scaduto, o quando l'indirizzo non corrisponde. Non spegne nulla: avvisa e tiene il conto.

activation-url'https://shadow-licences.riccardobotins.workers.dev'

Il servizio di attivazione della suite. Vuoto = niente /claim, e le chiavi si attivano a mano con /eco license activate <key>.

resolve-public-iptrue

Chiede al servizio di attivazione qui sopra (activation-url + /ip) come si vede questo server da fuori: risponde con l'indirizzo che vede, e del server non viene inviato niente. Serve quando la licenza è legata a un dominio e la macchina vede solo indirizzi interni. Solo con una licenza installata: un server senza chiave non chiede niente a nessuno. false = non chiedere mai.

server-ip""

L'indirizzo con cui questo server si presenta, quando non è quello che ricava da solo. Un nome o un ip; anche vuoto va benissimo.

storage7 chiavi
storage.mysql7 chiavi
enabledfalse

false = un database H2 locale dentro plugins/ShadowEconomy/data/. Niente da installare: il plugin funziona appena lo copi nella cartella.

host127.0.0.1
port3306
databaseshadoweconomy
usernameroot
password""
parameters"useSSL=false&allowPublicKeyRetrieval=true&serverTimezone=UTC&characterEncoding=utf8"
storage
table-prefix"se_"

Il prefisso delle tabelle. Se lo cambi, il plugin crea tabelle nuove e riparte da zero: utile per due server su un solo database.

fallback-to-localtrue

MySQL configurato ma irraggiungibile: con true il plugin lo dice in console e ripiega sul file locale, così il server parte lo stesso.

flush-interval"20s"

Ogni quanto i saldi modificati arrivano al database. Allo spegnimento avviene sempre un salvataggio bloccante, qualunque sia questo valore.

storage.h21 chiave
auto-serverfalse

Permette a un altro processo - per esempio un pannello web - di aprire lo stesso file H2 mentre il server è acceso. Serve di rado.

Più server su un solo database

Serve solo per un network - lobby + survival + ... - che condivide un solo MySQL. I server si passano le novità attraverso il database: nessuna porta da aprire, nessun plugin sul proxy.

Continua a leggere

Quello che viaggia è la DIFFERENZA, mai il totale: "aggiungi 500", mai "il saldo è 1500". Così due server che toccano lo stesso portafoglio nello stesso secondo arrivano allo stesso numero.

storage.sync5 chiavi
modeAUTO

AUTO = attivo quando si usa MySQL, spento sul database locale. ON | OFF per decidere tu.

primarytrue

IMPORTANTE: su un network, esattamente UN server ha primary: true. Quello chiude le aste, muove l'exchange, riscuote gli affitti e matura gli interessi. Gli altri leggono e mostrano.

server-idauto

Il nome di questo server. "auto" = hostname-porta.

poll-interval"1.5s"

Ogni quanto controlla se c'è qualcosa di nuovo.

keep"5m"

Le novità già lette vengono scartate dopo questo tempo.

storage.pool5 chiavi
maximum-pool-size10
minimum-idle2
connection-timeout-ms10000
idle-timeout-ms600000
max-lifetime-ms1800000
messages2 chiavi
default-localeen_US

La lingua usata quando quella del giocatore non è in lang/, e dalla console. Include en_US e it_IT. Imposta qui it_IT per un server italiano.

follow-client-localetrue

Ogni giocatore vede la lingua del proprio client, quando il file esiste.

Moduli

Spegnere un modulo non si limita a nasconderlo: il suo servizio non viene mai creato, i suoi listener non vengono mai registrati e i suoi comandi non esistono. Un server che vuole solo i portafogli paga solo per i portafogli.

modules10 chiavi
shoptrue

/shop, /sell, /buy, /worth

markettrue

auction house, /ah

chestshoptrue

sign and chest shops

districttrue

the rented shopping district, /market

financetrue

crypto, shares, companies

miningtrue

mining rigs

tokenstrue

event tokens, /token

banktrue

account, interest and loans, /bank

tradetrue

player to player trading, /trade

special-shopstrue

Gli shop in shops/*.yml: uno per file, ognuno con il suo comando e la sua valuta. Di serie ce n'è uno a token e uno crypto.

Economia

economy8 chiavi
starting-balance-on-first-jointrue

Il saldo iniziale, impostato per valuta in currencies.yml, al primo ingresso di un giocatore.

allow-negativefalse

Con true un giocatore può andare sotto zero. Sconsigliato: quasi tutti gli exploit dell'economia partono da un saldo negativo.

block-creative-sellingtrue

In creativa gli item escono dal nulla, quindi venderli è stampare soldi. Con true - consigliato - chi è in creativa non può vendere allo shop, mettere all'asta, soddisfare una richiesta d'acquisto o incassare un token. Il permesso shadoweconomy.bypass.creative lo esenta.

fire-eventstrue

Con false, BalanceChangeEvent non viene lanciato. Spegnilo solo se un altro plugin ci si aggancia e crea problemi.

compact-format-from1000000

Sopra questa cifra i numeri vengono scritti in forma breve: 1.23M.

economy.pay6 chiavi
enabledtrue
minimum1.0
tax-percent0.0

Trattenuta su ogni /pay. È questa la valvola contro l'inflazione.

tax-account"server"

"server" = i soldi trattenuti vengono distrutti. Qualsiasi altro nome crea un account di sistema con quel nome, visibile in /eco audit.

cooldown"3s"
confirm-above25000

Da questa cifra in su il pagamento chiede prima, con due pulsanti in chat (conferma / annulla): uno zero di troppo non deve svuotare un conto.

economy.interest6 chiavi
enabledfalse

Spento di serie: su un server che stampa già soldi con i mob e il mining, gli interessi rendono solo più ricco chi è già ricco.

interval"1h"
percent0.5
currencycoins
max-balance25000

Oltre questa soglia non maturano più interessi.

only-onlinetrue
economy.baltop2 chiavi
refresh"5m"
size100

Integrazioni

integrations4 chiavi
vaulttrue

Registra ShadowEconomy come provider di Vault: è così che i plugin di terze parti - Jobs, McMMO e gli altri - usano i nostri soldi.

suitetrue

Registra EconomyProvider per il resto della suite Shadow.

placeholderapitrue
regionsAUTO

AUTO -> ShadowRegions, poi WorldGuard, poi niente. SHADOWREGIONS | WORLDGUARD | INTERNAL per forzare una scelta.

sounds4 chiavi
success"entity.experience_orb.pickup"
error"block.note_block.bass"
click"ui.button.click"
big-purchase"entity.player.levelup"

bStats - statistiche d'uso anonime (https://bstats.org)

Cosa viene inviato, ogni 30 minuti: che questo server usa ShadowEconomy, le versioni del plugin, di Minecraft/Paper e di Java, il sistema operativo, il numero di core della CPU, quanti giocatori sono online (un numero, nient'altro), un serverUuid casuale che non identifica nulla, e l'edizione in uso (free, premium o creator). Nessun dato dei giocatori lascia il server: niente nomi, niente UUID, niente indirizzi, niente saldi o transazioni.

metrics1 chiave
enabledtrue

false lo spegne solo per questo plugin. enabled: false in plugins/bStats/config.yml lo spegne in un colpo solo per tutti i plugin di questo server.

debug2 chiavi
log-tradestrue

Scrive ogni scambio nel registro delle transazioni. Spegnendolo perdi /transactions e /eco audit, quindi lascialo attivo.

log-sqlfalse

Stampa ogni query in console. Solo per dare la caccia a un problema.

bank.yml

La banca
26 impostazioni
plugins/ShadowEconomy/bank.yml
Note del file

La banca dà ai soldi un posto dove stare che non sia una chest.

Tre cose: - un CONTO che rende interessi, a un tasso che scende man mano che il saldo

sale. Le fasce sono il punto di tutto: un tasso fisso su qualsiasi cifra è
una macchina per rendere più ricco chi è già ricco, e su un server
te ne accorgi nel giro di una settimana.

- DEPOSITI VINCOLATI, che rendono di più in cambio di non toccare i

soldi fino a una certa data. Romperne uno ha un costo.

- PRESTITI, con un limite calcolato su quello che il giocatore ha davvero,

rate trattenute in automatico, e un'insolvenza che chiude la porta
finché non salda il debito.

Un saldo in banca NON è una nuova tabella: è un normale account con un id derivato da quello del giocatore. Così viene salvato, tracciato in /eco audit e sincronizzato tra i server dallo stesso codice dei portafogli, e resta fuori da /baltop.

config-version1
bank6 chiavi
enabledtrue
currencycoins

La banca lavora con una sola valuta. Vuoto = quella di default.

min-deposit1
bank.interest3 chiavi
interval"1d"

Ogni quanto maturano gli interessi, e quindi quanto valgono le percentuali qui sotto: con 1d e 0.20 un conto piccolo guadagna lo 0.20% al giorno, cioè circa il 7% al mese. Abbassare l'intervallo senza abbassare la percentuale è il modo più rapido per gonfiare un'economia. Il calcolo lo fa una volta sola il server primario, così su un network nessuno viene pagato due volte.

only-onlinefalse

Con true paga solo i giocatori che sono online in quel momento.

bank.interest.tiers3 chiavi

Le fasce, lette dall'alto: il primo gradino il cui "up-to" è >= del saldo decide il tasso, applicato all'intero saldo. up-to: 0 significa "da qui in su".

bank.interest.tiers.piccolo2 chiavi
up-to100000
percent0.20
bank.interest.tiers.medio2 chiavi
up-to1000000
percent0.10
bank.interest.tiers.grande2 chiavi
up-to0
percent0.02
bank.term5 chiavi
enabledtrue
duration"7d"

Per quanto tempo i soldi restano vincolati.

percent5.0

Interessi pagati alla scadenza, sull'intera somma.

break-penalty-percent25.0

Ritirato in anticipo: niente interessi, e in più si perde questa percentuale.

minimum250
bank.loans9 chiavi
enabledtrue
interest-percent15.0

Interesse totale su un prestito: 15 significa che chi prende in prestito 1000 ne deve 1150, suddivisi nelle rate qui sotto.

base-limit1200

Limite = base + (patrimonio netto * limit-factor), fino a "maximum". Il patrimonio netto conta portafoglio, banca, depositi vincolati e investimenti.

limit-factor0.5
maximum250000

Un permesso può alzare o abbassare il tetto per un singolo giocatore: shadoweconomy.bank.limit.<n> (vince il numero più alto).

instalments7
instalment-interval"24h"
max-missed3

Rate saltate prima che il prestito vada in insolvenza. Da lì in poi, niente nuovi prestiti finché il giocatore non salda, o finché un admin non lo condona.

late-fee-percent5.0

Una penale di ritardo aggiunta al dovuto per ogni rata saltata.

currencies.yml

Le valute
20 impostazioni
plugins/ShadowEconomy/currencies.yml
Note del file

IN ITALIANO: lo stesso file con nomi e descrizioni in italiano è in esempi/it_IT/currencies.yml dentro la cartella di questo plugin. Copialo al posto di questo per usarlo: il plugin non lo legge mai da solo.

Le valute del server. Quella indicata in "default" è quella che usa Vault, quella che usa ogni comando senza una valuta esplicita, e quella che intende un prezzo dello shop quando non ne nomina una.

L'id di una valuta lo scrivono i giocatori, quindi tienilo in inglese. Solo "display", "plural" e "symbol" vengono mostrati a loro, e sono quelli da tradurre.

decimals: cifre dopo la virgola. 0 per una valuta in stile "token". max-balance: 0 vuol dire nessun tetto. payable: false toglie la valuta da /pay (normale per quelle premium). baltop: false la toglie dalla classifica.

config-version1
defaultcoins
currencies2 chiavi
currencies.coins9 chiavi
display"Coins"
plural"Coins"
symbol"$"
color"#FFD54F"
decimals2
starting-balance100.0

Quello che un giocatore si ritrova in tasca la prima volta che entra. Ai prezzi dello shop sono una ventina di tronchi: abbastanza per partire, non abbastanza per saltare l'inizio.

max-balance1000000000
payabletrue
baltoptrue
currencies.gems9 chiavi

Una valuta premium: arriva solo da /eco give (o dallo store del tuo sito), non si può inviare tra giocatori e resta fuori dalla classifica.

display"Gems"
plural"Gems"
symbol"❖"
color"#4FC3F7"
decimals0
starting-balance0
max-balance0
payablefalse
baltopfalse

district.yml

I distretti
14 impostazioni
plugins/ShadowEconomy/district.yml
Note del file

IN ITALIANO: lo stesso file con nomi e descrizioni in italiano è in esempi/it_IT/district.yml dentro la cartella di questo plugin. Copialo al posto di questo per usarlo: il plugin non lo legge mai da solo.

Il quartiere dei negozi: l'edificio che costruisce il proprietario del server, diviso in negozi che i giocatori affittano.

Come si crea un lotto:

1. /market admin wand
2. click sinistro su un angolo, click destro su quello opposto
3. /market admin create shop-1 shop
4. /market admin panel shop-1  ->  imposta la porta e il punto di visita

Da quel momento il lotto compare in /market e chiunque può affittarlo.

config-version1
district8 chiavi
enabledtrue
currencycoins

In quale valuta si pagano l'affitto e gli acquisti in vetrina.

grace-period"3d"

Quanto tempo ha un affittuario, dopo la scadenza dell'affitto, per rinnovare prima che il lotto torni sul mercato e la sua merce gli venga restituita.

commission-percent5.0

La percentuale che il distretto trattiene su ogni vendita fatta in vetrina.

rent-account"server"

Dove finiscono affitto e commissioni. "server" = distrutti, che è una deflazione voluta. Qualsiasi altro nome crea un account di sistema visibile in /eco audit.

confirm-purchase-above1200

Sopra questa cifra, comprare in vetrina chiede una conferma.

max-plots-per-player2

Lotti per giocatore. Si alza con shadoweconomy.district.limit.<n>.

hologramstrue

Vetrine olografiche: l'item che ruota sopra il bancone, con i prezzi sotto.

Livelli

Ogni lotto appartiene a un livello, che decide il suo affitto, la sua durata e quante vetrine può esporre. È questa la leva economica del distretto: più il posto è caro, più merce può contenere.

L'id del livello viene scritto nei lotti, quindi tienilo in inglese; ai giocatori viene mostrato solo "display".

tiers4 chiavi
tiers.stall5 chiavi
display"&aStall"
rent125
period"7d"
max-showcases4
iconOAK_TRAPDOOR
Ancora 3 voci con la stessa forma di stall: shop, store, boutique

finance.yml

La finanza
35 impostazioni
plugins/ShadowEconomy/finance.yml
Note del file

L'exchange: cinque criptovalute e le aziende fondate dai giocatori.

Quattro delle cinque sono quelle di cui tutti hanno sentito parlare, così un giocatore capisce cosa sta guardando senza che nessuno glielo spieghi. La quinta, ShadowCoin, è quella del server ed è l'unica che si può anche produrre: esce dai rig di mining e torna nello shop crypto, dove viene bruciata.

I prezzi si muovono con un moto browniano geometrico - il modo standard in cui si simulano i mercati - più due cose che lo rendono un gioco e non uno

screensaver:
  - la pressione dei giocatori (comprare spinge su, vendere spinge giù)
  - eventi di mercato, annunciati in chat.

volatility è annualizzata: 0.9 è una crypto selvaggia, 0.2 un indice tranquillo. Cambiare tick-interval non cambia il carattere di un asset.

Se preferisci, le quattro monete reali possono invece seguire il loro prezzo reale su Binance: vedi finance.real-prices qui sotto. Spento di default.

config-version2
finance11 chiavi
enabledtrue
currencycoins

In quale valuta si compra e si vende.

tick-interval"5m"

Ogni quanto si muovono i prezzi e si chiude una candela.

fee-percent0.5

Commissione su ogni scambio: una percentuale, con un minimo fisso.

fee-minimum0.25
history-points96

Punti conservati per il grafico dentro la GUI.

event-chance0.04

Probabilità che parta un evento, per asset e per tick.

event-duration-ticks6
announce-eventstrue
finance.company8 chiavi
enabledtrue
creation-cost12000

Quanto costa fondare un'azienda, oltre al capitale che va nella tesoreria.

min-capital2500

Capitale minimo da versare: è quello che dà valore alle azioni.

min-shares100
max-shares1000000
dividend-interval"24h"

Ogni quanto un fondatore può pagare un dividendo.

max-dividend-percent25
fair-value-pull0.05

Con quanta forza il prezzo di mercato viene tirato, a ogni tick, verso il valore contabile (tesoreria divisa per azioni). 0 = il mercato viene lasciato a sé stesso.

Prezzi reali da Binance (opzionale, spento di default)

Quando è attivo, ogni asset qui sotto che ha un "real-symbol" smette di essere simulato e segue il prezzo che ha in questo momento su Binance, il più grande exchange di crypto. ShadowCoin non ha real-symbol: è la moneta del server e resta simulata qualunque cosa tu scelga qui.

Continua a leggere

Perché non c'è nessuna API key da compilare: Binance pubblica i suoi prezzi di mercato su indirizzi pubblici, in sola lettura, che chiunque può usare, senza account e senza chiave. Una chiave serve solo per fare trading o per guardare un account, e questo plugin non fa né l'una né l'altra cosa. Quindi non c'è niente a cui iscriversi e niente da pagare - e non mettere mai una chiave Binance in un file di config: sarebbe solo un segreto lasciato in giro per niente.

Mentre una moneta segue Binance:

- il movimento casuale e gli eventi di mercato non la toccano;
- nemmeno gli scambi dei giocatori la muovono. Uno scambio su questo server
  è troppo piccolo per muovere il mercato reale, e un prezzo che i giocatori
  potessero spingere su per poi vendere sarebbe denaro gratis. Tutti
  comprano e vendono al prezzo reale; fee-percent è lo spread;
- min-price e max-price non si applicano;
- il grafico, l'apertura, il massimo e il minimo del giorno e la variazione %
  sono costruiti dai prezzi reali, come per qualsiasi altra moneta. Il primo
  prezzo reale apre un nuovo giorno, quindi attivare questa opzione non si
  vede come una giornata a +50% o -50%.

I movimenti di prezzo su Binance arrivano al server una volta per aggiornamento: un giocatore che guarda Binance li vede un po' prima, ed è per questo che la commissione dovrebbe restare sopra quanto si muove una moneta in un aggiornamento (0.5% va bene).

Se Binance non è raggiungibile le monete tengono il loro ultimo prezzo, la console lo dice una volta (e un'altra quando torna a rispondere), e il plugin riprova sempre meno spesso, fino a una volta ogni 10 minuti. Un real-symbol che Binance non conosce viene segnalato una volta in console e quella moneta torna a essere simulata.

Su un network di server solo quello primario interroga Binance; gli altri leggono i prezzi dal database come fanno già.

finance.real-prices6 chiavi
enabledfalse
hosts
["https://data-api.binance.vision", "https://api.binance.com"]+1

Provati in quest'ordine finché uno risponde; quello che ha risposto viene provato per primo la volta successiva. data-api.binance.vision è l'indirizzo di Binance dedicato solo ai dati di mercato e viene per primo, perché api.binance.com rifiuta alcuni paesi e alcuni provider di hosting.

refresh"60s"

Ogni quanto vengono letti i prezzi: una sola richiesta per tutte le monete. Minimo 10s.

timeout"5s"

Quanto aspettare una risposta prima di provare l'indirizzo successivo.

quoteUSDT

La valuta in cui sono quotati i real-symbol. USDT è un dollaro digitale (1 USDT vale circa 1 dollaro americano). Un real-symbol che non finisce con essa viene segnalato in console.

price-multiplier1.0

Quanti soldi del server vale 1 USDT, perché la tua economia ha una scala sua. Con 1 un Bitcoin costa quanto costa in dollari; con 0.01 ne costa un centesimo. Un asset può anche avere un suo price-multiplier (accanto al suo real-symbol), che si applica sopra questo.

Asset

L'id e il simbolo li digitano i giocatori, quindi restano in inglese; solo "display" viene mostrato come testo.

Continua a leggere

kind: CRYPTO | STOCK liquidity: quanti soldi servono per muovere il prezzo. Un valore basso crea una moneta che salta per pochissimo; uno alto la fa muovere lentamente. Uno scambio viene regolato a metà strada tra il prezzo prima e il prezzo dopo, quindi paga la propria spinta: comprare e rivendere subito non fa mai guadagnare.

assets5 chiavi

Le quattro che conoscono tutti

I prezzi partono vicini a quelli reali perché un giocatore che legge "Bitcoin 62000" capisce subito di cosa si tratta, e perché un numero grande ti costringe a comprarne una frazione - che è esattamente come funziona fuori. "liquidity" è quanti soldi servono per muovere il prezzo: alta su BTC, che si muove lentamente, bassa su XRP, che balla.

Continua a leggere

real-symbol è la coppia Binance che ognuna segue quando finance.real-prices è attivo (il nome che mostra Binance, tipo BTCUSDT). Toglilo per tenere una moneta simulata anche in quel caso. Accanto puoi aggiungere price-multiplier: 0.001 per rendere una moneta più economica delle altre.

assets.btc11 chiavi
kindCRYPTO
symbolBTC
display"Bitcoin"
iconGOLD_INGOT
price62000.0
volatility0.55
drift0.06
liquidity2000000
supply21000
min-price100.0
real-symbolBTCUSDT
Ancora 4 voci con la stessa forma di btc: eth, sol, xrp, shc

market.yml

Il mercato
34 impostazioni
plugins/ShadowEconomy/market.yml
Note del file

Due cose in un solo file, perché sono i due modi in cui i giocatori si vendono roba a vicenda:

- la casa d'aste (/ah), per vendere a chiunque senza essere presente;
- i chest shop, per vendere dalla propria base.
config-version3
auction18 chiavi
enabledtrue
listing-fee-percent2.0

Trattenuta quando l'annuncio viene pubblicato: si paga anche se non si vende niente, ed è ciò che scoraggia dal mettere in vendita cose a caso.

sale-tax-percent5.0

Trattenuta dal prezzo quando l'item viene effettivamente venduto.

min-price1
max-price100000000
default-duration"48h"
max-duration"168h"
max-listings5

Annunci contemporanei, per giocatore. Si alzano con il permesso shadoweconomy.market.slots.<n> (vince il numero più alto).

min-bid-increment-percent5.0

Rilancio minimo, in percentuale dell'offerta attuale. È anche il passo con cui la casa rilancia per conto di chi ha impostato un massimo: più è piccolo, più l'asta è combattuta.

anti sniping

auction
anti-snipe"30s"

Un'offerta negli ultimi "anti-snipe" secondi prolunga l'asta di "anti-snipe-extend". Senza, vince chi clicca al millisecondo giusto, non chi voleva davvero l'item. 0 lo disattiva.

anti-snipe-extend"30s"
buy-confirm-above2500

Sopra questa cifra, "compra subito" chiede una conferma. 0 non la chiede mai.

auto-relist-limit3

Quante volte un annuncio impostato con rimessa in vendita automatica può ripubblicarsi. Ogni ripubblicazione paga di nuovo la tassa. 0 disattiva la funzione.

sale-history-days14

La finestra usata per dire a un venditore "di solito questo va a X". Il prezzo mostrato è la mediana delle vendite recenti, non la media: una vendita assurda non deve spostare il consiglio.

watchlist-max10

Quante cose un giocatore può tenere d'occhio (/ah watch).

bundles-enabledtrue

Permette di vendere un intero inventario come un unico pacchetto.

broadcast-above25000

Sopra questa cifra la vendita viene annunciata in chat a tutti, con un link cliccabile all'annuncio. 0 non annuncia mai.

blacklist
[BEDROCK, COMMAND_BLOCK, SPAWNER, DEBUG_STICK, STRUCTURE_BLOCK]+2

Materiali che non si possono mettere all'asta.

Offerte dirette

Un acquirente propone il suo prezzo su un annuncio che non vende. I soldi vengono bloccati subito, quindi quello che arriva al venditore è un'offerta vera e non un messaggio: accetta o rifiuta con un clic.

offers3 chiavi
enabledtrue
duration"48h"

Per quanto resta valida un'offerta se il venditore non risponde.

max-per-player10

Offerte aperte contemporaneamente, per giocatore. Ognuna tiene da parte dei soldi, quindi il numero è tanto una protezione quanto un limite.

Richieste di acquisto

L'opposto di un annuncio: qualcuno mette giù i soldi per un item che vuole, e chiunque ce l'abbia glielo consegna e viene pagato sul momento. Una richiesta può essere soddisfatta anche solo in parte.

requests4 chiavi
enabledtrue
duration"7d"
max-per-player5
fee-percent0.0

Trattenuta quando si apre la richiesta. Zero di serie: i soldi sono già bloccati, e far pagare anche l'attesa scoraggia proprio quella metà del mercato che di solito manca.

chestshop7 chiavi
enabledtrue

Uno shop si apre con /chestshop create guardando una chest SINGOLA: la schermata della chest poi riceve l'item, i prezzi e uno sconto opzionale, e un ologramma sopra la chest li mostra. Il classico cartello ([Shop] sulla prima riga) funziona ancora per chi lo preferisce.

creation-cost0

Quanto costa aprire uno shop. 0 = gratis.

max-shops10

Shop per giocatore. Si alza con shadoweconomy.chestshop.limit.<n>.

sign-line"[Shop]"

La prima riga del cartello che crea lo shop.

hologramtrue

L'ologramma sopra la chest: l'item che ruota, con nome e prezzi.

protect-blockstrue

Protegge chest e cartello da rotture, esplosioni e hopper. Disattivarlo lascia gli shop in balìa del primo che passa.

max-discount90

Il massimo che uno sconto dello shop può togliere al prezzo di acquisto, in percentuale (0-90).

Vetrine fluttuanti (chest shop, banconi del distretto)

holograms1 chiave
spawn-distance32

Una vetrina nativa esiste solo finché un giocatore è entro questo numero di blocchi: più lontano le sue entità vengono rimosse, e rimesse quando qualcuno si avvicina. I chest shop passano da ShadowEssentials quando è installato, e usano invece la sua impostazione di distanza. 0 = sempre spawnate.

mining.yml

Le miniere
28 impostazioni
plugins/ShadowEconomy/mining.yml
Note del file

IN ITALIANO: lo stesso file con nomi e descrizioni in italiano è in esempi/it_IT/mining.yml nella cartella di questo plugin. Copialo al posto di questo per usarlo: il plugin non lo legge mai da solo.

Rig di mining: un blocco che si apre come un case, con dentro una scheda madre, un processore, un alimentatore, il raffreddamento e le schede video.

Un rig produce crypto, consuma corrente pagata in valuta vera, si scalda e si usura. Non sono soldi gratis: l'elettricità si paga ogni ora, la difficoltà sale con il numero di rig attivi sul server, e quello che esce è crypto, che va venduta sull'exchange prima di diventare soldi.

Per dare un componente a qualcuno:   /rig give <id> [amount] [player]
Per la lista dei componenti:         /rig parts
config-version1
mining13 chiavi
enabledtrue
assetshc

Quale asset di finance.yml viene prodotto.

currencycoins

In quale valuta si paga l'elettricità.

tick-interval"5m"
reward-per-mh-hour0.0000185

Unità di crypto prodotte per MH/s, all'ora, prima della difficoltà.

Continua a leggere

Il numero si imposta così: un rig medio - scheda madre Pro, CPU a 8 core, quattro 3070 e raffreddamento a liquido - fa 258 MH/s, consuma 1055 W e quindi 0.095 di elettricità all'ora; con questo valore guadagna circa 0.14, cioè il 50% in più di quanto costa tenerlo acceso.

Sotto 0.0000123 OGNI rig lavora in perdita e nessuno ne accende più uno. Molto sopra, il mining diventa la fonte infinita di soldi che rovina un'economia: è il moltiplicatore più delicato del plugin.

power-cost-per-kwh0.09

Quanto costa l'elettricità, per kWh.

difficulty-per-active-rig0.01

Ogni rig attivo sul server rende gli altri un po' meno redditizi.

max-offline-hours8

Ore di produzione che si accumulano mentre il server è spento o il giocatore è assente. Oltre questo tetto un rig smette di accumulare.

ambient-temp22

Temperature, in gradi.

throttle-temp80

above this, output drops

damage-temp95

above this, the rig wears out

wear-per-overheat-tick0.5
max-rigs3

Rig per giocatore. Si alza con shadoweconomy.mining.limit.<n>.

Componenti

Qui i componenti non hanno prezzo: si distribuiscono con /rig give e si vendono come preferisci - shop, crate, ricompense. Per dargli un prezzo, il conto da fare è il rientro: un rig medio guadagna circa 1.10 al giorno una volta pagata la corrente, e uno pieno di 4090 circa 5.50. Un componente che costa più di quanto rende in un mese è un componente che nessuno compra.

Continua a leggere

L'id del componente si digita nei comandi, quindi tienilo in inglese; "display" e la lore sono le parti pensate per essere tradotte.

type: RIG | MAINBOARD | CPU | GPU | PSU | COOLING
  hashrate   MH/s che il componente aggiunge
  power      watt consumati
  heat       calore prodotto
  cooling    calore smaltito
  capacity   watt forniti (solo PSU)
  gpu-slots  quante schede video contiene (solo MAINBOARD)
  efficiency moltiplicatore sull'hashrate totale (solo MAINBOARD)
components20 chiavi

il case che piazzi

components.case_base4 chiavi
typeRIG
display"Mining Case"
materialFURNACE
lore
["&7Place it and click on it", "&7to fit the parts inside."]+1
Ancora 17 voci con la stessa forma di case_base: case_pro, mb_base, mb_pro, mb_server, cpu_2, cpu_8, cpu_16, gpu_1060, gpu_3070, gpu_4090, psu_500, psu_1200, psu_2000, cool_fan, cool_tower, cool_liquid, cool_nitro
components.psu_40004 chiavi

Serve per riempire di schede video una scheda madre Server: sette 4090 chiedono 3150 W in tutto.

typePSU
display"4000W Power Supply"
materialCONDUIT
capacity4000
components.cool_immersion6 chiavi

Il componente che rende possibile una scheda madre Server piena: sette 4090 fanno 361 di calore, e senza qualcosa di questa taglia il rig supera i 95 gradi e si usura fino a rompersi.

typeCOOLING
display"Immersion Cooling"
materialSEA_LANTERN
cooling300
power160
lore
["&7The whole mainboard under liquid.", "&8Draws as much power as a third of a graphics card."]+1

shop.yml

Il negozio
17 impostazioni
plugins/ShadowEconomy/shop.yml
Note del file

IN ITALIANO: lo stesso file con nomi e descrizioni in italiano è in esempi/it_IT/shop.yml, nella cartella di questo plugin. Copialo al posto di questo per usarlo: il plugin non lo legge mai da solo.

Lo shop del server, pronto all'uso.

Non è un esempio da riempire: quattordici categorie, con i prezzi calibrati l'uno sull'altro, pensate per uno SkyBlock. I giocatori guadagnano vendendo ciò che producono le loro isole - cobblestone, canna da zucchero, meloni, ferro, drop dei mob - e spendono in blocchi decorativi, equipaggiamento e cose che non si possono farmare.

LA SCALA È BASSA, ED È VOLUTO

Un'economia si rompe quando lo shop paga cifre alte per cose prodotte a stack: il primo giocatore con una farm automatica fa dieci milioni in una settimana, e da lì in poi i soldi non valgono più niente per nessuno. Qui il grano vale 3.50 e un diamante 10: guadagni piano, e quello che guadagni conta.

I punti fissi da cui discende tutto il resto:

cobblestone       0.50     il generatore non si esaurisce mai
tronco            2.00     un albero è tempo speso
grano             3.50     una pianta, un grano
patata / carota   1.50     la stessa pianta ne dà due o tre
lingotto di ferro 4.00
diamante         10.00     la più cara delle cose comuni

La regola del grano contro la patata vale per tutto il catalogo: non si dà il prezzo all'item, ma al RACCOLTO. La canna da zucchero cresce e si taglia da sola, quindi 0.50. Una fetta di melone è un nono di melone, quindi 0.25.

IL PREZZO DI ACQUISTO

Non un solo moltiplicatore. Più una cosa è rara, più comprarla deve convenire meno che andarsela a prendere:

x3      vendita sotto 1      cobble, terra, sabbia, foglie, semi
x2.5    fino a 4             tronchi, raccolti, lana
x6      da 4 in su           lingotti, vetro, macchine, attrezzi
x15     di valore            ossidiana, perle, bacchette di blaze
x100    rari                 diamante, smeraldo, netherite

Un tronco si vende a 2 e costa 5. Un diamante si vende a 10 e costa 1000: lo shop te lo compra volentieri, ma non è il posto dove equipaggiarti. È questa la differenza tra uno shop al servizio di un'economia e uno che la sostituisce.

LA REGOLA CHE NON SI TOCCA

Niente di craftabile vale più dei pezzi di cui è fatto. Un pistone vale le sue tre assi, quattro cobble, un lingotto e una redstone, e non una moneta di più. Senza quella regola un autocrafter che gira in loop stampa soldi e nessuno se ne accorge.

L'eccezione voluta è la fusione: la cobblestone che diventa pietra vale il doppio, il minerale grezzo fuso in lingotto guadagna. È progressione, non una falla - è ciò che spinge un'isola a costruire fornaci.

Se cambi un prezzo, guarda in cosa viene craftato quell'item. Alzare un prezzo di vendita da solo è il modo classico di aprire una stampante di soldi nel tuo stesso shop.

COSA PUOI CAMBIARE SENZA PENSARCI

display / description / icon    come appare una categoria
slot                            dove sta sullo schermo
limit-buy-per-day               quanti al giorno, per giocatore
permission                      per nasconderla a chi non ce l'ha

Ogni voce ha:

id                  identificatore unico (usato dal database e dall'API)
material            il materiale, oppure "item" con un item serializzato
buy                 quanto costa al giocatore. 0 = non si può comprare
sell                quanto paga al giocatore. 0 = non si può vendere
dynamic             true = il prezzo si muove con la domanda (attivo di default)
limit-buy-per-day   0 = nessun limite
limit-sell-per-day  0 = nessun limite
permission          se c'è, serve quel permesso per vederla
lore                righe in più nella descrizione

I nomi visualizzati e le descrizioni sono gli unici testi pensati per i giocatori, quindi sono la parte da tradurre. Tutto il resto - chiavi, id e questi commenti - è in inglese, perché lo legge chi gestisce il server, in qualunque parte del mondo.

Per aggiungere o correggere una voce senza toccare questo file: /shop edit

config-version3
settings3 chiavi
require-pristinetrue

Rifiuta di comprare item danneggiati, rinominati o incantati quando la voce del catalogo è un materiale semplice. Disattivarlo significa pagare per una spada incantata quanto vale una spada semplice.

min-margin-percent20

Distanza minima, in percentuale, tra prezzo di acquisto e prezzo di vendita. Il ricarico più basso di questo catalogo è x2.5, cioè un margine del 60%.

blacklist
[BEDROCK, COMMAND_BLOCK, CHAIN_COMMAND_BLOCK, REPEATING_COMMAND_BLOCK, STRUCTURE_BLOCK, STRUCTURE_VOID, JIGSAW, BARRIER, LIGHT, SPAWNER, DEBUG_STICK, KNOWLEDGE_BOOK, BUDDING_AMETHYST, REINFORCED_DEEPSLATE]+11

Materiali che lo shop non tocca in nessun caso.

Prezzi dinamici

Ogni voce ha un fattore che parte da 1. Comprare lo spinge su, vendere lo spinge giù, e il tempo lo riporta verso 1. Il risultato è un mercato che risponde ai giocatori senza mai andare fuori scala: nemmeno un server che vende diecimila cobblestone porta il prezzo sotto il 35% di quanto scritto qui.

dynamic-pricing8 chiavi
enabledtrue
elasticity0.02

Quanto pesa un singolo scambio.

reference-volume64

"Un'unità di scambio": uno stack.

min-factor0.35
max-factor2.50
recovery-per-hour0.10

Di quanto il prezzo torna indietro verso il suo valore base ogni ora.

history-points96

Punti conservati per il grafico: 96 x 15 minuti = 24 ore.

history-interval"15m"

Categorie

Gli slot 10-16 sono la prima riga, 19-25 la seconda.

categories14 chiavi

Blocchi

categories.blocks5 chiavi
display"&#B0BEC5&lBlocks"
iconSTONE_BRICKS
slot10
description
["&7Stone, dirt, sand, glass:", "&7everything a build stands on.", "", "&8Cobblestone is what sells"]+3
items
[{ id: cobblestone, material: COBBLESTONE, buy: 1.5, sell: 0.5, lore: […] }, { id: stone, material: STONE, buy: 2.25, sell: 0.75 }, { id: smooth_stone, material: SMOOTH_STONE, buy: 2.5, sell: 0.85 }, { id: stone_bricks, …+74
Ancora 13 voci con la stessa forma di blocks: ores, wood, nature, farming, livestock, loot, nether, end, ocean, decoration, redstone, food, gear

tokens.yml

I token
24 impostazioni
plugins/ShadowEconomy/tokens.yml
Note del file

IN ITALIANO: lo stesso file con nomi e descrizioni in italiano è in esempi/it_IT/tokens.yml dentro la cartella di questo plugin. Copialo al posto di questo per usarlo: il plugin non lo legge mai da solo.

Un token è denaro con un corpo: ha un saldo come qualsiasi valuta, e può uscire dal conto come item - tenuto in mano, regalato, messo in una cassa, venduto in uno shop, e riportato allo sportello per tornare un saldo.

DUE FORME, e una riga sceglie tra le due:

currency: coins   -> è una BANCONOTA di una valuta che esiste
                     già. Incassarla restituisce coins.
currency: none    -> è una VALUTA A SÉ. Il plugin la registra
                     come tale, così /balance, /pay, /baltop, lo shop
                     e la casa d'aste la capiscono senza
                     altre configurazioni.

DUE MODI DI ESSERE UN ITEM, ed è questa la scelta che conta:

serialized: false -> AL PORTATORE. Si stacka, è comodo, ed è

copiabile esattamente come è copiabile
un diamante. Va bene per gli spiccioli.

serialized: true -> REGISTRATO. Ogni item porta un numero che

esiste una sola volta nel database e si incassa una volta.
Copiare l'item copia il numero, e il
secondo che arriva viene rifiutato. Usalo per
qualsiasi cosa che valga qualcosa.

Il modello 3D si imposta con item-model - un nome, non un numero, così due plugin non possono contendersi "shadow:banknote". Serve un resource pack che definisca quel modello; senza, l'item è semplicemente il materiale che hai scelto, e funziona lo stesso.

L'id di un token viene digitato dai giocatori e usato da altri plugin, quindi tienilo in inglese. "display", il nome dell'item e la sua lore sono le parti da tradurre.

COSA C'È DI SERIE

Un solo token, ed è voluto. Un server che parte con quattro token ha quattro cose di cui nessuno ha ancora deciso cosa fare, e compaiono tutte in /balance. Quello qui sotto è il token degli eventi: una valuta a sé, guadagnata agli eventi, spesa in /tokenshop.

Per aggiungerne un altro, copia il suo blocco e cambia le due righe che contano - "currency" e "serialized" - come descritto sopra. Una banconota di coins è currency: coins con serialized: false; un assegno è currency: coins con value: 0 e serialized: true.

config-version2
tokens4 chiavi
enabledtrue
drop-if-fulltrue

Quando l'inventario è pieno il token cade a terra invece di tornare nell'account. Con false, quello che non entra viene riaccreditato.

max-items-per-withdraw576

Tetto al numero di item che un singolo /token withdraw può creare.

tokens.list1 chiave

Token eventi: una valuta tutta sua

Non vale coins, vale token. Si guadagna agli eventi e si spende dove decide il server - shop, aste, crate.

tokens.list.event_token14 chiavi
display"Event Token"
currencynone
symbol"ET"
color"#AB47BC"
decimals0
starting-balance0
max-supply0

0 = nessun tetto. Con un numero il plugin non ne crea mai più di tanti, e il controllo sta dentro la stessa istruzione che li crea.

payabletrue
baltopfalse
physicaltrue
serializedfalse
redeem-on-right-clicktrue
redeem-commands[ ]

Comandi eseguiti dalla console quando se ne incassa uno. %player% %uuid% %token% %count% %amount% %formatted%

tokens.list.event_token.item7 chiavi
materialSUNFLOWER
item-model""
custom-model-data0
name"&#AB47BC&lEvent Token"
lore
["&8&m ", "&7A token from an event.", "&7Right click to put one in your account.", "&7Sneak to put them all in.", "", "&8Spend it with &f/shop&8 and &f/ah&8."]+5
glowtrue
max-stack64

trade.yml

Gli scambi fra giocatori
21 impostazioni
plugins/ShadowEconomy/trade.yml
Note del file

Scambi tra due giocatori: item, soldi ed esperienza, in un'unica finestra che stanno guardando tutti e due.

COME UNO SCAMBIO RESTA ONESTO

Ogni truffa negli scambi è lo stesso trucco. Il ladro aspetta che l'altro giocatore legga l'offerta, e cambia qualcosa nell'attimo tra la lettura e l'accettazione. Qui tre regole fanno sì che quell'attimo non esista, e nessuna si può disattivare:

1. qualsiasi modifica a uno dei due lati annulla ENTRAMBE le accettazioni,
   non solo quella di chi ha fatto la modifica;
2. una volta che entrambi hanno accettato, l'offerta si CONGELA, e parte un
   conto alla rovescia durante il quale nessuno può modificare niente;
3. solo allora compaiono i pulsanti di conferma, e ognuno mostra l'intero
   accordo - cosa esce, cosa entra - nel proprio tooltip.

In più, il lato destro dello schermo descrive ogni item in arrivo per quello che è davvero: un blocco rinominato dice il suo vero nome, una shulker box dice se è vuota, un attrezzo usurato dice quanto è usurato. È lì che si nasconde il resto delle truffe.

COSA VIENE REGISTRATO

Ogni scambio completato finisce nel database, a parole, e si rilegge con "/trade log <player>". Quando due giocatori raccontano due storie diverse, quella riga è la risposta.

Gli item offerti hanno già lasciato l'inventario del proprietario, quindi vengono registrati anche loro, e tutto ciò che un crash lascia indietro viene restituito al login successivo. Niente viene mai buttato a terra.

config-version1
trade10 chiavi
shift-right-clicktrue

Shift più clic destro su un giocatore gli manda un invito, senza scrivere niente. Metti false per lasciare solo /trade <player>.

request-expires60s

Quanto resta valido un invito prima di scadere, e quanto deve aspettare un giocatore prima di mandarne un altro. Il cooldown è ciò che impedisce di usare lo spam di inviti per tormentare qualcuno.

request-cooldown5s
max-distance12

Quanto possono essere distanti i due, in blocchi. Viene controllato per tutto il tempo, non solo all'inizio: allontanarsi a metà di uno scambio è un trucco, non un incidente. 0 toglie il controllo.

same-world-onlytrue
freeze3s

Il conto alla rovescia congelato dopo che entrambi hanno accettato, in secondi. È l'anti-truffa: mentre scorre nessuno dei due può toccare l'offerta, quindi non c'è un ultimo istante in cui cambiare qualcosa. Alzalo su un server con giocatori molto giovani; non scende sotto un secondo.

session-timeout5m

Uno scambio che nessuno completa finisce da solo e restituisce tutto.

allow-in-creativefalse

La modalità creativa è un duplicatore infinito di item, e una finestra di scambio trasforma item duplicati in item veri di qualcun altro. Lascia false. Un giocatore con shadoweconomy.bypass.creative può farlo in ogni caso.

cancel-on-damagetrue

Essere colpiti chiude lo scambio. Chiude un vecchio trucco che funziona ancora ovunque lo si lasci aperto: tenere qualcuno dentro una schermata, dove non può né difendersi né scappare, mentre un amico lo uccide.

announce-above100000

Sopra questa cifra di soldi la console riceve una riga con i nomi di entrambi i giocatori, così uno scambio grosso è visibile nel log senza che nessuno debba andarlo a cercare. 0 non annuncia mai.

money3 chiavi
enabledtrue
tax-percent0.0

Una commissione sui soldi che passano di mano, trattenuta a chi li invia. Dove finisce si decide una volta per tutto il plugin, con economy.pay.tax-account in config.yml. 0 la disattiva.

max-per-trade0

Il massimo di soldi che un giocatore può mettere in un singolo scambio. 0 = nessun limite. A un rank se ne può concedere di più con shadoweconomy.trade.limit.<figure>.

experience2 chiavi
enabledtrue
max-levels0

Il massimo di livelli che un giocatore può mettere in un singolo scambio. 0 = nessun limite.

Lo schermo parla di livelli perché è quello che un giocatore legge sulla propria barra, ma sotto sposta punti: un livello vale di più quanto più è alto, e spostare direttamente i livelli creerebbe o distruggerebbe esperienza a ogni scambio.

items3 chiavi
enabledtrue
blocked-materials
[BEDROCK, COMMAND_BLOCK, CHAIN_COMMAND_BLOCK, REPEATING_COMMAND_BLOCK, STRUCTURE_BLOCK, BARRIER, DEBUG_STICK]+4

Item che non si possono mai scambiare. Utile per tutto ciò che un giocatore non dovrebbe poter passare ad altri: item delle quest, strumenti dello staff, chiavi legate a un solo account.

blocked-names[ ]

Gli item il cui nome contiene una di queste parole vengono rifiutati. Il confronto ignora maiuscole e minuscole, sul nome che vede il giocatore.

worlds1 chiave
blocked[ ]

Mondi in cui gli scambi sono disattivati. Un mondo eventi o un'arena di minigiochi, di solito - ovunque gli item vengano distribuiti invece che guadagnati.

recovery1 chiave
keep-days30

Per quanto tempo un item rimasto da uno scambio interrotto aspetta il suo proprietario prima di essere eliminato, in giorni.

Lingue

I testi che il plugin mostra ai giocatori, un file per lingua.

lang/

Testi e messaggi
2 file
plugins/ShadowEconomy/lang/
Note del file

I colori si scrivono con i codici &: &a &c &7, &l per il grassetto, &#FF8800 per un colore esatto. Funzionano anche i tag stile <gray> se li preferisci: il plugin capisce entrambi, ovunque.

I placeholder si scrivono <come-questo> e NON sono colori: <amount>, <player>, <prefix>. Lasciali come sono. Questo file è l'ultimo ripiego: una chiave che manca ovunque viene cercata qui, quindi tienilo completo.

Un messaggio è sempre una riga sola. Suono, canale e cooldown si scrivono come chiavi vicine, con lo stesso nome più un suffisso:

paid: "&aDone."
paid-sound: entity.experience_orb.pickup
paid-channel: ACTION_BAR     # CHAT | ACTION_BAR | TITLE | SUBTITLE | NONE
paid-cooldown: "2s"          # per player anti spam
paid-volume: 0.7
paid-pitch: 0.8

Così la chiave del messaggio resta il messaggio: un traduttore tocca solo quella, e chi cerca una chiave la trova dove è scritta.

Le liste sono descrizioni su più righe (la lore di un item della GUI).

Tutti i messaggi che il plugin mostra ai giocatori, un file per lingua. Le chiavi non sono elencate una per una: qui ci sono i file, quanti testi contengono e i segnaposto che usano.

FileLinguaTesti
lang/en_US.yml riferimento English 1333
lang/it_IT.yml Italiano 1333

Segnaposto più usati

Il plugin li sostituisce con il valore giusto: vanno lasciati scritti così.

  • <prefix>
  • <amount>
  • <player>
  • <item>
  • <price>
  • <count>
  • <plot>
  • <id>
  • <value>
  • <max>
  • <time>
  • <asset>
  • <total>
  • <balance>

Gruppi di messaggi

  • prefix 1
  • common 22
  • command 4
  • input 8
  • balance 5
  • pay 14
  • baltop 10
  • wallet 9
  • history 8
  • interest 1
  • confirm 5
  • eco 100
  • shop 73
  • shops 22
  • market 286
  • chestshop 86
  • district 178
  • finance 125
  • mining 74
  • token 45
  • bank 58
  • license 50
  • trade 149

Altro

Contenuti pronti, esempi, importazioni: i file che si copiano e si modificano come modello.

shops/

I negozi, uno per file
2 file
plugins/ShadowEconomy/shops/

2 file con la stessa forma. Qui sotto 2 esempi per intero, uno per ogni forma diversa; gli altri sono elencati per nome.

  • crypto.yml
  • token.yml

Esempio shops/token.yml

Note del file

IN ITALIANO: lo stesso file con nomi e descrizioni in italiano è in esempi/it_IT/shops/token.yml, nella cartella di questo plugin. Copialo al posto di questo per usarlo: il plugin non lo legge mai da solo.

Lo shop dei token.

Ogni file dentro shops/ è uno shop a sé: il suo comando, la sua schermata e la sua moneta. Questo si paga in TOKEN EVENTO, la valuta che i giocatori guadagnano agli eventi - l'"event_token" di tokens.yml, quella con currency: none, che il plugin registra come una valuta vera.

Per farne un altro, copia questo file con un altro nome: viene letta tutta la cartella, e non c'è nessuna lista da aggiornare da nessuna parte.

COSA PUÒ VENDERE

Qualsiasi cosa, e più cose insieme nella stessa voce:

items         item normali, o un item custom serializzato
permissions   permessi, dati con il comando qui sotto
commands      comandi eseguiti dalla console
money         soldi di qualsiasi valuta

Un rank VIP è un permesso più un annuncio; un kit è item più un po' di soldi; una chiave di cassa è un comando. Lo shop non sa cosa sia nessuno di questi: fa quello che dice il file.

I PREZZI

Fissi, e in token. Non si muovono con la domanda come quelli dello shop principale, ed è voluto: questa è la vetrina delle ricompense, non un mercato.

Chiavi e id sono in inglese perché li legge chi gestisce il server. "title", "name" e "lore" sono ciò che vedono i giocatori, quindi sono quelle le parti da tradurre.

config-version1
shop11 chiavi
enabledtrue
idtoken
command"tokenshop"

Il comando che apre la schermata, e i suoi alias.

aliases[tshop, tokenstore]
title"&#AB47BC&lToken Shop"
rows5
fillerBLACK_STAINED_GLASS_PANE
permission""

Serve per aprirla. Vuoto = tutti.

shop.pay-with1 chiave

In cosa si paga. Uno dei due, mai entrambi:

currency: <id>   una valuta di currencies.yml, oppure un token con
                 currency: none, che è una valuta a tutti gli effetti
asset: <id>      unità di un asset dell'exchange - vedi
                 shops/crypto.yml
currencyevent_token
shop
confirm-above50

Sopra questa cifra serve un secondo clic per confermare. Le singole voci possono scavalcarla con "confirm: true" o "confirm: false".

permission-command"lp user %player% permission set %permission% true"

Come si concede un permesso. Non esiste un modo standard: ogni plugin di permessi ha il suo, e un comando è l'unica cosa che funziona con tutti. Di serie è la sintassi di LuckPerms.

%player%  %uuid%  %permission%
Le voci

Ognuna ha:

slot                 dove sta. Senza, la prima cella libera
icon                 il materiale mostrato, oppure "item:" serializzato
name / lore          come si presenta
price                quanto costa, in token
limit-per-player     quante in tutto, per giocatore. 0 = nessun limite
limit-per-day        quante al giorno, per giocatore. 0 = nessun limite
stock                quante in tutto, per l'intero server
requires-permission  serve anche solo per vederla
confirm              chiede il secondo clic
give                 cosa consegna
items10 chiavi
item
items.miner_kit7 chiavi
slot10
iconIRON_PICKAXE
name"&b&lMiner's Kit"
lore
["&7Everything you need to go down:", "&7a pickaxe, torches and something to eat."]+1
price8
limit-per-day2
items.miner_kit.give1 chiave
items
[{ material: IRON_PICKAXE, amount: 1 }, { material: TORCH, amount: 64 }, { material: COOKED_BEEF, amount: 16 }]+2
Ancora 7 voci con la stessa forma di miner_kit: shulker_box, ender_chest, coin_pouch, strongbox, extra_homes, repair, temporary_flight
items.chat_colours7 chiavi

La seconda riga è centrata su 20-22: prima partiva da 19 e finiva a 21, e restava appesa a sinistra di una riga larga sette.

slot20
iconNAME_TAG
name"&e&lChat Colours"
lore["&7Write in chat with colour codes."]
price45
limit-per-player1
items.chat_colours.give1 chiave
permissions[essentials.chat.color]
una voce che mette insieme tutte e quattro
items.vip_rank8 chiavi

Da sola al centro della terza riga: è l'offerta di punta e costa più di tutto quello che sta sopra messo insieme, quindi ha una riga tutta sua invece di finire in coda alla seconda.

slot31
iconNETHER_STAR
name"&#FFB300&lVIP Rank"
lore
["&7The rank, a welcome kit", "&7and five thousand coins.", "", "&8Once per player."]+3
price250
limit-per-player1
confirmtrue
items.vip_rank.give4 chiavi
permissions[group.vip]
items
[{ material: DIAMOND_PICKAXE, amount: 1 }, { material: GOLDEN_APPLE, amount: 8 }]+1
money[{ currency: coins, amount: 5000 }]
commands["broadcast &#FFB300%player% &7is now &#FFB300…]

Esempio shops/crypto.yml

Note del file

IN ITALIANO: lo stesso file con nomi e descrizioni in italiano è in esempi/it_IT/shops/crypto.yml dentro la cartella di questo plugin. Copialo al posto di questo per usarlo: il plugin non lo legge mai da solo.

Lo shop che si paga in crypto.

Esattamente lo stesso meccanismo di shops/token.yml: cambia una riga, "pay-with", che qui indica un ASSET dell'exchange invece di una valuta. Si paga in ShadowCoin, quella prodotta dai rig di mining.

Il cerchio si chiude da solo: mini SHC con i rig, e con gli SHC compri i pezzi per minare più in fretta. Le unità spese non tornano sul mercato - vengono bruciate, e la quantità in circolazione scende - il che rende questo shop l'unico freno all'inflazione della moneta.

UNA COSA DA NON FARE

Non mettere ricompense "money" qui dentro. Il prezzo di SHC sul mercato si muove; quello dello shop no. Il primo giorno che SHC scende, comprare SHC sull'exchange e rivenderlo qui a prezzo fisso diventa denaro gratis, e nessuno se ne accorge finché non è tardi. In cambio di crypto dai item, permessi e comandi. Mai monete.

config-version1
shop11 chiavi
enabledtrue
idcrypto
command"cryptoshop"
aliases[shcshop, cryptostore]
title"&#FFB300&lCrypto Shop"
rows5
fillerBLACK_STAINED_GLASS_PANE
permission""
shop.pay-with1 chiave

Ecco tutta la differenza rispetto all'altro shop: si paga in unità di un asset di finance.yml, non in una valuta. I prezzi sono in SHC.

assetshc
shop
confirm-above5
permission-command"lp user %player% permission set %permission% true"
Le voci

I componenti dei rig si consegnano con un comando e non come item: sono item custom con un contrassegno dentro, e "/rig give" è il modo per crearne uno senza incollare qui un item serializzato.

items8 chiavi
schede video: ciò su cui spende un miner
items.gpu_10606 chiavi
slot10
iconREDSTONE_TORCH
name"&c&lRTX-Redstone 1060"
lore
["&7The card everyone starts with.", "&822 MH/s &8- &8120 W"]+1
price1.5
items.gpu_1060.give1 chiave
commands["rig give gpu_1060 1 %player%"]
Ancora 6 voci con la stessa forma di gpu_1060: gpu_3070, gpu_4090, mb_server, psu_4000, cool_immersion, extra_rig_slot
un rig intero, per chi non vuole comprarlo pezzo per pezzo
items.complete_rig8 chiavi

21 e 23, non 22 e 24: la riga sopra ha tre schede, la cella centrale vuota, tre componenti. Questi due stanno a cavallo della stessa cella centrale, così le due righe condividono un solo asse invece di averne una spostata a destra.

slot21
iconBLAST_FURNACE
name"&6&lComplete Rig"
lore
["&7Pro case, Pro mainboard, 8 core CPU,", "&7four 3070s, power supply and cooling.", "", "&8Cheaper than buying the parts one by one.", "&8Only one per player."]+4
price26
limit-per-player1
confirmtrue
items.complete_rig.give1 chiave
commands
["rig give case_pro 1 %player%", "rig give mb_pro 1 %player%", "rig give cpu_8 1 %player%", "rig give gpu_3070 4 %player%", "rig give psu_2000 1 %player%", "rig give cool_liquid 1 %player%"]+5

Tutta la documentazione