Configurazione
ShadowEconomy
Soldi, negozi, aste, affitti e borsa. Un'economia intera in un jar.
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.
Nessuna impostazione trovata
Prova con un’altra parola, oppure cerca in tutti i plugin.
Impostazioni
I file che decidono come si comporta il plugin. Si parte da qui.
config.yml
Impostazioni generali 68 impostazioni
config.ymlplugins/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-version1Licenza
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 chiaviLA 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-days7Giorni 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-iptrueChiede 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 chiavistorage.mysql7 chiavienabledfalsefalse = un database H2 locale dentro plugins/ShadowEconomy/data/. Niente da installare: il plugin funziona appena lo copi nella cartella.
host127.0.0.1port3306databaseshadoweconomyusernamerootpassword""parameters"useSSL=false&allowPublicKeyRetrieval=true&serverTimezone=UTC&characterEncoding=utf8"storagetable-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-localtrueMySQL 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 chiaveauto-serverfalsePermette 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 chiavimodeAUTOAUTO = attivo quando si usa MySQL, spento sul database locale. ON | OFF per decidere tu.
primarytrueIMPORTANTE: 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-idautoIl 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 chiavimaximum-pool-size10minimum-idle2connection-timeout-ms10000idle-timeout-ms600000max-lifetime-ms1800000messages2 chiavidefault-localeen_USLa 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-localetrueOgni 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 chiavishoptrue/shop, /sell, /buy, /worth
markettrueauction house, /ah
chestshoptruesign and chest shops
districttruethe rented shopping district, /market
financetruecrypto, shares, companies
miningtruemining rigs
tokenstrueevent tokens, /token
banktrueaccount, interest and loans, /bank
tradetrueplayer to player trading, /trade
special-shopstrueGli 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 chiavistarting-balance-on-first-jointrueIl saldo iniziale, impostato per valuta in currencies.yml, al primo ingresso di un giocatore.
allow-negativefalseCon true un giocatore può andare sotto zero. Sconsigliato: quasi tutti gli exploit dell'economia partono da un saldo negativo.
block-creative-sellingtrueIn 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-eventstrueCon false, BalanceChangeEvent non viene lanciato. Spegnilo solo se un altro plugin ci si aggancia e crea problemi.
compact-format-from1000000Sopra questa cifra i numeri vengono scritti in forma breve: 1.23M.
economy.pay6 chiavienabledtrueminimum1.0tax-percent0.0Trattenuta 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-above25000Da 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 chiavienabledfalseSpento 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.5currencycoinsmax-balance25000Oltre questa soglia non maturano più interessi.
only-onlinetrueeconomy.baltop2 chiavirefresh"5m"size100Integrazioni
integrations4 chiavivaulttrueRegistra ShadowEconomy come provider di Vault: è così che i plugin di terze parti - Jobs, McMMO e gli altri - usano i nostri soldi.
suitetrueRegistra EconomyProvider per il resto della suite Shadow.
placeholderapitrueregionsAUTOAUTO -> ShadowRegions, poi WorldGuard, poi niente. SHADOWREGIONS | WORLDGUARD | INTERNAL per forzare una scelta.
sounds4 chiavisuccess"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 chiaveenabledtruefalse 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 chiavilog-tradestrueScrive ogni scambio nel registro delle transazioni. Spegnendolo perdi /transactions e /eco audit, quindi lascialo attivo.
log-sqlfalseStampa ogni query in console. Solo per dare la caccia a un problema.
bank.yml
La banca 26 impostazioni
bank.ymlplugins/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-version1bank6 chiavienabledtruecurrencycoinsLa banca lavora con una sola valuta. Vuoto = quella di default.
min-deposit1bank.interest3 chiaviinterval"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-onlinefalseCon true paga solo i giocatori che sono online in quel momento.
bank.interest.tiers3 chiaviLe 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 chiaviup-to100000percent0.20bank.interest.tiers.medio2 chiaviup-to1000000percent0.10bank.interest.tiers.grande2 chiaviup-to0percent0.02bank.term5 chiavienabledtrueduration"7d"Per quanto tempo i soldi restano vincolati.
percent5.0Interessi pagati alla scadenza, sull'intera somma.
break-penalty-percent25.0Ritirato in anticipo: niente interessi, e in più si perde questa percentuale.
minimum250bank.loans9 chiavienabledtrueinterest-percent15.0Interesse totale su un prestito: 15 significa che chi prende in prestito 1000 ne deve 1150, suddivisi nelle rate qui sotto.
base-limit1200Limite = base + (patrimonio netto * limit-factor), fino a "maximum". Il patrimonio netto conta portafoglio, banca, depositi vincolati e investimenti.
limit-factor0.5maximum250000Un permesso può alzare o abbassare il tetto per un singolo giocatore: shadoweconomy.bank.limit.<n> (vince il numero più alto).
instalments7instalment-interval"24h"max-missed3Rate 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.0Una penale di ritardo aggiunta al dovuto per ogni rata saltata.
currencies.yml
Le valute 20 impostazioni
currencies.ymlplugins/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-version1defaultcoinscurrencies2 chiavicurrencies.coins9 chiavidisplay"Coins"plural"Coins"symbol"$"color"#FFD54F"decimals2starting-balance100.0Quello 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-balance1000000000payabletruebaltoptruecurrencies.gems9 chiaviUna 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"decimals0starting-balance0max-balance0payablefalsebaltopfalse district.yml
I distretti 14 impostazioni
district.ymlplugins/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-version1district8 chiavienabledtruecurrencycoinsIn 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.0La 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-above1200Sopra questa cifra, comprare in vetrina chiede una conferma.
max-plots-per-player2Lotti per giocatore. Si alza con shadoweconomy.district.limit.<n>.
hologramstrueVetrine 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 chiavitiers.stall5 chiavidisplay"&aStall"rent125period"7d"max-showcases4iconOAK_TRAPDOORstall:
shop, store, boutique finance.yml
La finanza 35 impostazioni
finance.ymlplugins/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-version2finance11 chiavienabledtruecurrencycoinsIn quale valuta si compra e si vende.
tick-interval"5m"Ogni quanto si muovono i prezzi e si chiude una candela.
fee-percent0.5Commissione su ogni scambio: una percentuale, con un minimo fisso.
fee-minimum0.25history-points96Punti conservati per il grafico dentro la GUI.
event-chance0.04Probabilità che parta un evento, per asset e per tick.
event-duration-ticks6announce-eventstruefinance.company8 chiavienabledtruecreation-cost12000Quanto costa fondare un'azienda, oltre al capitale che va nella tesoreria.
min-capital2500Capitale minimo da versare: è quello che dà valore alle azioni.
dividend-interval"24h"Ogni quanto un fondatore può pagare un dividendo.
max-dividend-percent25fair-value-pull0.05Con 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 chiavienabledfalsehosts["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.
quoteUSDTLa 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.0Quanti 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 chiaviLe 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 chiavikindCRYPTOsymbolBTCdisplay"Bitcoin"iconGOLD_INGOTprice62000.0volatility0.55drift0.06liquidity2000000supply21000min-price100.0real-symbolBTCUSDTbtc:
eth, sol, xrp, shc market.yml
Il mercato 34 impostazioni
market.ymlplugins/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-version3auction18 chiavienabledtruelisting-fee-percent2.0Trattenuta 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.0Trattenuta dal prezzo quando l'item viene effettivamente venduto.
min-price1max-price100000000default-duration"48h"max-duration"168h"max-listings5Annunci contemporanei, per giocatore. Si alzano con il permesso shadoweconomy.market.slots.<n> (vince il numero più alto).
min-bid-increment-percent5.0Rilancio 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
auctionanti-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-above2500Sopra questa cifra, "compra subito" chiede una conferma. 0 non la chiede mai.
auto-relist-limit3Quante volte un annuncio impostato con rimessa in vendita automatica può ripubblicarsi. Ogni ripubblicazione paga di nuovo la tassa. 0 disattiva la funzione.
sale-history-days14La 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-max10Quante cose un giocatore può tenere d'occhio (/ah watch).
bundles-enabledtruePermette di vendere un intero inventario come un unico pacchetto.
broadcast-above25000Sopra 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 chiavienabledtrueduration"48h"Per quanto resta valida un'offerta se il venditore non risponde.
max-per-player10Offerte 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 chiavienabledtrueduration"7d"max-per-player5fee-percent0.0Trattenuta 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 chiavienabledtrueUno 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-cost0Quanto costa aprire uno shop. 0 = gratis.
max-shops10Shop per giocatore. Si alza con shadoweconomy.chestshop.limit.<n>.
sign-line"[Shop]"La prima riga del cartello che crea lo shop.
hologramtrueL'ologramma sopra la chest: l'item che ruota, con nome e prezzi.
protect-blockstrueProtegge chest e cartello da rotture, esplosioni e hopper. Disattivarlo lascia gli shop in balìa del primo che passa.
max-discount90Il massimo che uno sconto dello shop può togliere al prezzo di acquisto, in percentuale (0-90).
Vetrine fluttuanti (chest shop, banconi del distretto)
holograms1 chiavespawn-distance32Una 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
mining.ymlplugins/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-version1mining13 chiavienabledtrueassetshcQuale asset di finance.yml viene prodotto.
currencycoinsIn quale valuta si paga l'elettricità.
tick-interval"5m"reward-per-mh-hour0.0000185Unità 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.09Quanto costa l'elettricità, per kWh.
difficulty-per-active-rig0.01Ogni rig attivo sul server rende gli altri un po' meno redditizi.
max-offline-hours8Ore di produzione che si accumulano mentre il server è spento o il giocatore è assente. Oltre questo tetto un rig smette di accumulare.
ambient-temp22Temperature, in gradi.
throttle-temp80above this, output drops
damage-temp95above this, the rig wears out
wear-per-overheat-tick0.5max-rigs3Rig 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 chiaviil case che piazzi
components.case_base4 chiavitypeRIGdisplay"Mining Case"materialFURNACElore["&7Place it and click on it", "&7to fit the parts inside."]+1
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_nitrocomponents.psu_40004 chiaviServe per riempire di schede video una scheda madre Server: sette 4090 chiedono 3150 W in tutto.
typePSUdisplay"4000W Power Supply"materialCONDUITcapacity4000components.cool_immersion6 chiaviIl 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.
typeCOOLINGdisplay"Immersion Cooling"materialSEA_LANTERNcooling300power160lore["&7The whole mainboard under liquid.", "&8Draws as much power as a third of a graphics card."]+1
shop.yml
Il negozio 17 impostazioni
shop.ymlplugins/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-version3settings3 chiavirequire-pristinetrueRifiuta 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-percent20Distanza 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 chiavienabledtrueelasticity0.02Quanto pesa un singolo scambio.
reference-volume64"Un'unità di scambio": uno stack.
min-factor0.35max-factor2.50recovery-per-hour0.10Di quanto il prezzo torna indietro verso il suo valore base ogni ora.
history-points96Punti 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 chiaviBlocchi
categories.blocks5 chiavidisplay"&#B0BEC5&lBlocks"iconSTONE_BRICKSslot10description["&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
blocks:
ores, wood, nature, farming, livestock, loot, nether, end, ocean, decoration, redstone, food, gear tokens.yml
I token 24 impostazioni
tokens.ymlplugins/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-version2tokens4 chiavienabledtruedrop-if-fulltrueQuando l'inventario è pieno il token cade a terra invece di tornare nell'account. Con false, quello che non entra viene riaccreditato.
max-items-per-withdraw576Tetto al numero di item che un singolo /token withdraw può creare.
tokens.list1 chiaveToken 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 chiavidisplay"Event Token"currencynonesymbol"ET"color"#AB47BC"decimals0starting-balance0max-supply00 = 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.
payabletruebaltopfalsephysicaltrueserializedfalseredeem-on-right-clicktrueredeem-commands[ ]Comandi eseguiti dalla console quando se ne incassa uno. %player% %uuid% %token% %count% %amount% %formatted%
tokens.list.event_token.item7 chiavimaterialSUNFLOWERitem-model""custom-model-data0name"&#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
glowtruemax-stack64 trade.yml
Gli scambi fra giocatori 21 impostazioni
trade.ymlplugins/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-version1trade10 chiavishift-right-clicktrueShift più clic destro su un giocatore gli manda un invito, senza scrivere niente. Metti false per lasciare solo /trade <player>.
request-expires60sQuanto 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-cooldown5smax-distance12Quanto 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-onlytruefreeze3sIl 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-timeout5mUno scambio che nessuno completa finisce da solo e restituisce tutto.
allow-in-creativefalseLa 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-damagetrueEssere 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-above100000Sopra 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 chiavienabledtruetax-percent0.0Una 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-trade0Il 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 chiavienabledtruemax-levels0Il 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 chiavienabledtrueblocked-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 chiaveblocked[ ]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 chiavekeep-days30Per 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
lang/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.
| File | Lingua | Testi |
|---|---|---|
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
prefix1common22command4input8balance5pay14baltop10wallet9history8interest1confirm5eco100shop73shops22market286chestshop86district178finance125mining74token45bank58license50trade149
Altro
Contenuti pronti, esempi, importazioni: i file che si copiano e si modificano come modello.
shops/
I negozi, uno per file 2 file
shops/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.ymltoken.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-version1shop11 chiavienabledtrueidtokencommand"tokenshop"Il comando che apre la schermata, e i suoi alias.
aliases[tshop, tokenstore]title"&#AB47BC&lToken Shop"rows5fillerBLACK_STAINED_GLASS_PANEpermission""Serve per aprirla. Vuoto = tutti.
shop.pay-with1 chiaveIn 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.ymlcurrencyevent_tokenshopconfirm-above50Sopra 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 chiaviitem
items.miner_kit7 chiavislot10iconIRON_PICKAXEname"&b&lMiner's Kit"lore["&7Everything you need to go down:", "&7a pickaxe, torches and something to eat."]+1
price8limit-per-day2items.miner_kit.give1 chiaveitems[{ material: IRON_PICKAXE, amount: 1 }, { material: TORCH, amount: 64 }, { material: COOKED_BEEF, amount: 16 }]+2
miner_kit:
shulker_box, ender_chest, coin_pouch, strongbox, extra_homes, repair, temporary_flightitems.chat_colours7 chiaviLa seconda riga è centrata su 20-22: prima partiva da 19 e finiva a 21, e restava appesa a sinistra di una riga larga sette.
slot20iconNAME_TAGname"&e&lChat Colours"lore["&7Write in chat with colour codes."]price45limit-per-player1items.chat_colours.give1 chiavepermissions[essentials.chat.color]una voce che mette insieme tutte e quattro
items.vip_rank8 chiaviDa 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.
slot31iconNETHER_STARname"&#FFB300&lVIP Rank"lore["&7The rank, a welcome kit", "&7and five thousand coins.", "", "&8Once per player."]+3
price250limit-per-player1confirmtrueitems.vip_rank.give4 chiavipermissions[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-version1shop11 chiavienabledtrueidcryptocommand"cryptoshop"aliases[shcshop, cryptostore]title"&#FFB300&lCrypto Shop"rows5fillerBLACK_STAINED_GLASS_PANEpermission""shop.pay-with1 chiaveEcco 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.
assetshcshopconfirm-above5permission-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 chiavischede video: ciò su cui spende un miner
items.gpu_10606 chiavislot10iconREDSTONE_TORCHname"&c&lRTX-Redstone 1060"lore["&7The card everyone starts with.", "&822 MH/s &8- &8120 W"]+1
price1.5items.gpu_1060.give1 chiavecommands["rig give gpu_1060 1 %player%"]gpu_1060:
gpu_3070, gpu_4090, mb_server, psu_4000, cool_immersion, extra_rig_slotun rig intero, per chi non vuole comprarlo pezzo per pezzo
items.complete_rig8 chiavi21 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.
slot21iconBLAST_FURNACEname"&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
price26limit-per-player1confirmtrueitems.complete_rig.give1 chiavecommands