Vai al contenuto
ShadowMC

Configurazione

ShadowMinions

Piccoli lavoratori che producono anche quando il giocatore non c'e'.

Premium v1.0.4

Dove sono i file

plugins/ShadowMinions/

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

Applicare le modifiche

/minion reload

Rilegge i file senza riavviare il server.

Cosa c’è dentro

11 file · 304 impostazioni

Da dove partire: config.yml

Impostazioni

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

config.yml

Impostazioni generali
67 impostazioni
plugins/ShadowMinions/config.yml
Note del file

Questo file spiega il PERCHÉ di ogni opzione, non solo il cosa. Se una riga non ti convince, il commento sopra dovrebbe dirti cosa succede quando la cambi: se non lo fa, è un difetto di questo file, non tuo.

LA LINGUA DI QUESTO FILE. Chiavi e commenti sono in inglese, ovunque e sempre: un'impostazione è qualcosa che scrivi, un admin dall'altra parte del mondo deve riconoscerla, e finisce incollata nei ticket di supporto. L'unico testo che cambia lingua è quello che legge un GIOCATORE, e sta in lang/ - inglese di default, lo imposti con general.language qui sotto.

Due cose sono sempre vere:

* Un valore sbagliato non ferma mai il plugin. Viene sostituito con il

default e scritto in console con il percorso esatto e cosa ci si
aspettava. Puoi sbagliare senza paura.

* Quello che cambi resta tuo. All'aggiornamento i tuoi file vengono portati

automaticamente alla nuova versione: arrivano le nuove opzioni e i nuovi
commenti, ogni valore che hai cambiato viene mantenuto, i vecchi file restano
in backup/<date>/, e se qualcosa richiede la tua attenzione trovi PORTING-<version>.txt
nella cartella del plugin. Non serve ricominciare da capo a ogni aggiornamento.

I LAVORI NON SONO QUI. Stanno in minions.yml: quali minion esistono, cosa producono, ogni quanto e con quale raggio. Quella è una tabella, e le tabelle stanno meglio per conto loro.

config-version1

Generale

general7 chiavi
languageen_US

La lingua predefinita del server. Il plugin include en_US e it_IT in lang/, e puoi aggiungerne altre: un file lang/fr_FR.yml viene preso da solo.

follow-client-languagetrue

Ogni giocatore vede i messaggi nella lingua del proprio client, quando quella lingua esiste. Attivo di default perché non costa niente e perché un server con giocatori di due paesi lo vuole quasi sempre; disattivalo se preferisci che tutti leggano la stessa cosa.

accept-section-symboltrue

Accetta nei testi anche il simbolo di paragrafo, oltre alla e commerciale. Utile solo se incolli testi da vecchie configurazioni di altri plugin.

update-filestrue

All'aggiornamento, porta alla nuova versione questo file, minions.yml, lang/ e menus/: quello che hai cambiato viene mantenuto, quello che non hai mai toccato prende il nuovo default, i file precedenti vanno in backup/<date>/ e tutto ciò che non si è potuto portare viene elencato in PORTING-<version>.txt. Disattivalo solo se gestisci i file con uno strumento tuo: se è spento i tuoi file non vengono mai riscritti, e un messaggio che manca viene letto dalla copia dentro il jar.

save-every60s

Ogni quanto scrivere nel database le modifiche in sospeso. In ogni caso non si perde mai niente: allo spegnimento c'è una scrittura bloccante che svuota la coda. Alzarlo riduce le scritture su un server con molti minion, abbassarlo riduce quanto si perde in un crash.

confirmation-timeout30s

Quanto dura una richiesta di conferma prima di scadere. Sotto i dieci secondi diventa una corsa; oltre un minuto, un giocatore clicca CONFERMA su una domanda che non ricorda più di aver fatto.

bstats-id0

L'id di questo plugin su bstats.org. Serve solo a sapere quanti server lo usano e su quale versione; non invia nomi, né indirizzi, né coordinate.

Continua a leggere

0 = usa l'id integrato nel plugin. Un numero sopra 0 scritto qui ne prende il posto. Finché sono entrambi 0 le statistiche NON partono proprio, e va bene così: un id sbagliato non produce "nessun dato", produce dati che finiscono sulla pagina di qualcun altro, e non si può tornare indietro.

Per disattivarle, vedi la sezione "metrics" qui sotto.

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

Cosa viene inviato, ogni 30 minuti: un id casuale del server (serverUuid, non derivato da niente), la versione del plugin, le versioni di Minecraft/Paper e di Java, il sistema operativo e il numero di core, la online mode, quanti giocatori sono online (solo un numero) e il livello di licenza (free/premium/creator). NESSUN dato dei giocatori: niente nomi, niente UUID, niente indirizzi, niente mondi, niente coordinate. Non viene inviato nulla finché il plugin aspetta una licenza.

Continua a leggere

false disattiva solo questo plugin. enabled: false in plugins/bStats/config.yml disattiva in un colpo solo tutti i plugin bStats del server.

metrics1 chiave
enabledtrue

La coda

Questo è il cuore del plugin, e il motivo per cui regge cinquecento minion dove altri si fermano a cento.

Continua a leggere

Non c'è un task per ogni minion. C'è UNA coda ordinata per "a chi tocca dopo", e ogni giro serve solo chi è di turno. Un minion che aspetta trenta secondi viene guardato una volta e servito una volta, non sessanta volte. Con questo design mille minion costano quanto dieci.

Su Folia il giro sceglie solo chi è di turno: ogni minion di turno viene poi passato al thread che possiede il suo pezzo di mondo, e il suo turno viene eseguito lì.

queue3 chiavi
every-ticks10

Ogni quanto, in tick, la coda cerca chi è di turno. Dieci tick sono mezzo secondo: abbastanza spesso da non vedere ritardi, abbastanza di rado da non costare niente. Portarlo a 20 dimezza il numero di risvegli e sposta ogni turno di al massimo mezzo secondo, cosa che nessuno nota.

max-per-tick40

Quanti minion possono essere serviti in un singolo giro, per regione. Quelli che avanzano NON vanno persi: restano in testa alla coda e sono i primi al giro dopo. Questo è un freno, non un tetto alla produzione - quello che un minion avrebbe prodotto è ancora lì, sotto forma di tempo trascorso.

Continua a leggere

Quaranta è dimensionato per il momento peggiore, cioè il primo giro dopo un riavvio, quando tutti i minion sono di turno insieme. Con ShadowOptimizer installato questo numero scende da solo quando il server è sotto carico.

max-cycles-per-turn4096

Quanti cicli al massimo un singolo minion può smaltire in un turno. È un paracadute: con un intervallo molto breve e un tetto di ore molto alto, un rientro potrebbe produrre numeri assurdi. Il magazzino li fermerebbe comunque, ma è meglio fermarli prima di calcolarli.

Quanti minion

Il tetto è costruito così:

Continua a leggere
max( il numero qui sotto , permesso shadowminions.limit.<n> )

+ bonus livello dell'isola = quello che concede il server

...e poi la licenza taglia. Su un server gratuito ne restano tre, per quanto alto sia il numero: è il limite della versione gratuita e non si può aggirare da un file, perché altrimenti non sarebbe un limite.

limits4 chiavi
minions-per-player5

Quanti minion può avere un giocatore senza permessi speciali.

island-levels-per-minion0

Un minion in più ogni tot livelli dell'isola. Zero disattiva il bonus.

È la meccanica che tiene in piedi uno skyblock: i minion producono, la produzione alza il livello dell'isola, il livello concede più minion. Un giocatore torna il giorno dopo perché quel numero è salito mentre era via. Richiede ShadowSkyBlock; senza, questo valore non fa niente.

max-island-bonus20

Quanti minion può concedere al massimo il bonus dell'isola, così che un'isola di livello altissimo non finisca per concederne duecento.

count-towards-island-leveltrue

I minion contano nel calcolo del livello dell'isola. Disattivalo solo se preferisci che il livello dipenda soltanto da quello che è stato costruito.

Produzione offline

Questa è LA funzione: un minion produce anche mentre il giocatore è via.

Non è simulata, è CALCOLATA: tempo trascorso diviso intervallo, per la resa. Costa uguale per un minuto e per tre mesi. Se fosse simulata, il rientro di qualcuno via da una settimana bloccherebbe il server nel momento esatto in cui torna, che è il peggiore possibile.

offline-production1 chiave
max-hours24

Quante ore di lavoro si accumulano al massimo. Ventiquattro di default.

Continua a leggere

IL TETTO NON È TIRCHIERIA. Senza, chi torna dopo tre mesi si ritrova duecentomila item in faccia, e quella roba finisce in vendita tutta insieme: non è un regalo a lui, è la fine dell'economia del tuo server. Con ventiquattro ore, chi passa una volta al giorno non perde mai niente - che è esattamente il comportamento che vale la pena premiare.

Zero toglie il tetto. È una scelta legittima su un server privato tra amici dove l'economia non conta; su un server pubblico è quasi sempre un errore che scopri tre mesi dopo.

Sulla versione gratuita il tetto è comunque di due ore.

Deposito

Dove finisce quello che un minion produce, in ordine:

Continua a leggere
1. la VoidChest collegata -> vende da sola, non si riempie mai
2. la vendita diretta     -> quando auto-sell qui sotto è acceso (tutto il server)
3. la chest collegata     -> si riempie
4. un altro minion        -> il raccolto finisce nel suo magazzino
5. il magazzino del minion -> e quando è pieno, il minion SI FERMA

Un minion non butta mai niente. Quando non c'è più spazio smette di lavorare e lo scrive sopra la testa, e riparte da solo appena qualcuno lo svuota.

deposit5 chiavi
auto-selltrue

Vendita automatica: il raccolto diventa denaro senza che nessuno apra una cassa. Richiede ShadowEconomy, che decide i prezzi con il suo listino - non una tabella scritta qui, che sarebbe una seconda economia da tenere allineata con la prima.

È una funzione Premium. Su un server gratuito il minion deposita normalmente, e non si perde niente.

currencymoney

Quale valuta di ShadowEconomy accreditare. Vuoto o "money" significa quella di default del server.

warn-when-fulltrue

Avvisa il proprietario in chat quando uno dei suoi minion si ferma perché è pieno. Una volta per fermata, non a ogni tentativo.

Carburante

Facoltativo. Un minion con carburante lavora più in fretta finché ne ha, poi torna alla sua velocità normale. Non serve per farlo funzionare: c'è per dare qualcosa da spendere a chi ha già tutto.

È una funzione Premium. Su un server gratuito i minion vanno alla loro velocità normale, che è quella attorno a cui sono stati progettati.

fuel4 chiavi
enabledtrue
interval-multiplier0.5

Quanto si accorcia l'attesa con il carburante acceso. 0.5 significa metà del tempo, cioè il doppio della velocità. Uno disattiva l'effetto.

Non scendere troppo: sotto 0.25 un minion con carburante produce quattro volte tanto, e a quel punto il carburante non è più un bonus, è il modo giusto di giocare - con la conseguenza che chi non ce l'ha si sente indietro.

fuel.types6 chiavi

Quanto vale un item, in millisecondi di lavoro accelerato. 60000 = un minuto. Un materiale scritto male viene saltato e segnalato, senza farti perdere gli altri.

COAL90000
CHARCOAL90000
COAL_BLOCK900000
BLAZE_ROD300000
LAVA_BUCKET600000
DRIED_KELP_BLOCK120000
fuel
custom{ }

Item custom che valgono una durata tutta loro, di qualunque cosa siano fatti.

Continua a leggere

Una riga sotto "types" vale per OGNI item di quel materiale. Una riga qui vale per un item preciso, riconosciuto dal marchio che i plugin di item custom mettono sui propri oggetti - quello moderno (item-model) o quello storico (model-data). Così una tanica fatta con una blaze rod può valere sei ore senza che una blaze rod normale valga altro che i suoi cinque minuti.

material    il materiale base, quello che vedi nell'inventario. Obbligatorio.
value       quanto vale, in millisecondi. Obbligatorio.
item-model  la chiave del modello dell'item, es. 'shadow:fuel_canister'
model-data  il numero di custom model data, es. 7001

Serve almeno uno tra item-model e model-data: senza un marchio la riga corrisponderebbe a ogni item di quel materiale, che è a cosa serve "types" ed è più leggibile lì.

Vuoto di default. L'esempio qui sotto è commentato apposta - attivarlo senza un item che porti davvero quel marchio non fa proprio niente.

custom:
  fuel-canister:
    material: BLAZE_ROD
    model-data: 7001
    value: 21600000

Potenziamento

Un minion sale di livello lavorando, gratis e lentamente. L'item qui sotto è la scorciatoia: concede esperienza in blocco e può far salire più livelli in una volta.

Continua a leggere

Apposta non esiste un potenziamento acquistabile con la valuta del server: con l'item sei TU a scegliere dove metterlo - una crate di ShadowCrazyChest, uno shop di ShadowEconomy, una ricompensa di ShadowBattlePass - e quanto costa, usando gli strumenti che hai già.

upgrade2 chiavi
itemNETHER_STAR

L'item che vale un potenziamento.

experience100

Quanta esperienza concede. Confrontala con experience-base e experience-growth del lavoro in minions.yml per capire quanti livelli sono: con base 50 e growth 1.6, cento di esperienza ti portano dal livello 1 quasi al 3.

Aspetto

appearance4 chiavi
show-radiustrue

Mostra il raggio di lavoro con le particelle quando si apre il pannello di un minion o quando viene piazzato.

NON c'è un listener sul movimento dei giocatori, e non ci sarà mai: un PlayerMoveEvent scatta venti volte al secondo per giocatore, e sarebbe il costo più alto dell'intero plugin per la sua funzione meno importante. Il raggio si vede quando lo chiedi, che è anche l'unico momento in cui ti interessa.

particle-seconds5

Per quanti secondi restano le particelle. Le vede solo chi le ha chieste.

nameplatetrue

Il nome sopra la testa del minion, con il lavoro, il livello e - quando è fermo - il motivo. È il modo più rapido per accorgersi che un minion ha il magazzino pieno senza aprire niente.

skins
[GRASS_BLOCK, OAK_LOG, STONE, COBBLESTONE, SAND, PUMPKIN, CARVED_PUMPKIN, JACK_O_LANTERN, MELON, HAY_BLOCK, COAL_BLOCK, IRON_BLOCK, GOLD_BLOCK, DIAMOND_BLOCK, EMERALD_BLOCK, NETHERITE_BLOCK, LAPIS_BLOCK, REDSTONE_BLOCK, …+25

I blocchi che un giocatore può mettere sulla testa di un minion dal suo pannello ("Aspetto"). Va bene qualunque item; blocchi e teste di mob rendono meglio. Una lista vuota tiene il set integrato. La faccia di un giocatore - un nome scritto in chat - è una cosa a parte, dietro il permesso shadowminions.skin.player.

Protezione

protection3 chiavi
from-explosionstrue

I minion non si rompono con le esplosioni e non si possono abbattere a pugni. L'entità nasce già invulnerabile: questa è la seconda linea di difesa, quella che regge anche quando un altro plugin toglie l'invulnerabilità.

from-pistonstrue

I pistoni non spostano i minion. Un armor stand non si muove comunque, ma c'è sempre un plugin che ne inventa uno che lo fa.

blocked-worlds[ ]

I mondi dove non si possono piazzare minion. Una lista di nomi. Di solito il mondo dello spawn o un'arena.

Integrazioni

Ognuna è facoltativa e nessuna è un requisito. Disattivarne una qui significa non cercarla proprio, che è diverso da "non c'è": è quello che vuoi quando hai quel plugin ma non vuoi che i due si parlino.

Quando un pezzo si spegne perché manca un altro plugin, viene scritto in console una volta, con il nome di quello che manca e di quello che si è spento.

integrations7 chiavi
shadoweconomytrue

I prezzi e il denaro della vendita automatica.

shadowregionstrue

"Questo giocatore può costruire qui?", chiesto al momento del piazzamento.

shadowcrazychesttrue

La VoidChest: un minion collegato a una VoidChest vende invece di riempirsi. È una metà del ciclo produci-vendi-guadagna.

shadowskyblocktrue

L'isola: il tetto di minion che cresce con il livello, e - soprattutto - l'unica API della suite che sa dire se un giocatore OFFLINE può toccare un blocco. Senza, un minion che scava mentre il proprietario è via non avrebbe nessuno a cui chiedere il permesso.

shadowcustomizertrue

Aspetto personalizzato dei minion e item custom nelle loro tabelle di produzione.

shadowoptimizertrue

Quanti minion servire per tick quando il server è sotto carico, e la promessa che le sue pulizie non toccheranno i nostri armor stand.

objectivestrue

ShadowQuests e ShadowBattlePass: i minion fanno avanzare quest e sfide.

Salvataggio dati

Di default un file H2 dentro la cartella del plugin: niente da installare, nessun utente da creare, nessuna password.

MySQL condiviso è una funzione Premium. Su un server gratuito, impostare enabled: true qui sotto non è un errore: il plugin resta sul file locale e lo scrive in console, con tutti i suoi dati intatti.

storage6 chiavi
table-prefixsmn_

Il prefisso delle tabelle. Cambialo solo se condividi un database con qualcos'altro. Vengono tenuti solo lettere, cifre e underscore: il nome di una tabella non può essere passato come parametro, quindi finisce concatenato dentro l'SQL, e "lo scrive un admin" non è un buon motivo per lasciare aperta una concatenazione.

log-queriesfalse

Scrive ogni query in console. Solo per capire un problema: su un server in produzione riempie il log in pochi minuti.

storage.mysql7 chiavi
enabledfalse
host127.0.0.1
port3306
databaseshadowminions
userroot
password''
parameters'useSSL=false&allowPublicKeyRetrieval=true&serverTimezone=UTC&characterEncoding=utf8'
storage
fallback-to-localtrue

Se MySQL non risponde all'avvio, riparti sul file locale invece di non partire affatto. Attivo di default: un server che non si avvia per colpa di un database irraggiungibile è un problema molto più grosso di uno che si avvia con dati vecchi. Mettilo a false solo se preferisci accorgertene subito.

storage.h21 chiave
auto-serverfalse

Permette a un altro processo di aprire lo stesso file H2 mentre il server è acceso. Serve solo se vuoi guardarci dentro con uno strumento esterno.

storage.pool5 chiavi
maximum10
minimum-idle2
connection-timeout-ms10000
idle-timeout-ms600000
max-lifetime-ms1800000

Licenza

La chiave NON va qui. Il comando di attivazione la scrive da solo in license.yml, che è un file separato apposta: una richiesta di supporto che dice "mandami la tua config" non deve arrivare con dentro la licenza di qualcuno.

Continua a leggere
/minion license claim <code>       chiede al servizio di attivazione
/minion license activate <key>     attiva una chiave che hai già
/minion license refresh            rilegge e ricontrolla
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 vive qui: vive in license.yml, in questa cartella, che viene scritto al primo avvio (oppure in plugins/ShadowControl/licenses.yml per tutta la suite).

Lascialo vuoto. È qui per chi gestisce venti server con la stessa config e preferisce impostarlo una volta sola.

grace-days7

Quanti giorni di tolleranza prima di tornare alla versione gratuita quando qualcosa non torna: un abbonamento appena scaduto (il rinnovo è quasi sempre già partito) o un indirizzo che non corrisponde (molto più spesso un NAT o un proxy che un ladro).

server-ip''

L'indirizzo con cui i tuoi giocatori conoscono il server. Serve solo dietro un proxy, dove la macchina non vede mai il proprio indirizzo pubblico.

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

L'indirizzo base del servizio di attivazione. Il plugin aggiunge da solo /claim e /check. Vuoto significa che l'attivazione automatica è spenta e la chiave va incollata a mano.

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. È l'unico modo affidabile per conoscere il proprio indirizzo pubblico da dietro un NAT, ed è il motivo per cui una licenza venduta su un dominio funziona su una macchina i cui indirizzi locali sono tutti 10.x. Un fallimento è silenzioso: il periodo di tolleranza esiste proprio perché un server senza internet in uscita continui a girare. Solo con una licenza installata: un server senza chiave non chiede niente a nessuno. false = non chiedere mai.

minions.yml

I lavori dei minion
211 impostazioni
plugins/ShadowMinions/minions.yml
Note del file

Questo file dice QUALI minion esistono su questo server e cosa fanno. Le impostazioni generali - la coda, i limiti, il deposito, il carburante - stanno in config.yml.

LA LINGUA DI QUESTO FILE. Chiavi, id e commenti sono in inglese: sono cose che si scrivono, e un id e' anche quello che si scrive in /minion give <player> <job>. Quello che legge un GIOCATORE - il "name" di ogni mestiere e le parole del suo schema - non e' scritto qui: un valore come "lang:job.miner.name" e' una chiave di lang/, cosi' ogni giocatore lo legge nella sua lingua (le parole si cambiano in lang/en_US.yml e lang/it_IT.yml, sotto job). Scrivi un testo normale al posto della chiave - un mestiere tuo, un nome che ti piace di piu' - e quel testo si mostra cosi' com'e', a tutti.

UN MINION E' UN LAVORO, NON UNA RISORSA

Qui non esiste il "minion della cobblestone" ne' il "minion del grano", e questa e' tutta l'idea. Un minion lavora il mondo VERO e tiene i drop VERI di quello che rompe: metti un generatore di cobblestone davanti al minatore e produce cobblestone, mettici del ferro e produce ferro. Nessuno deve aggiungere niente a nessun elenco, e un blocco aggiunto da un altro plugin funziona dal giorno in cui lo installi.

La conseguenza da sapere: un mestiere che prende i drop veri NON ha una tabella "produce", e non e' una dimenticanza. Quello che rende lo decide quello che trova, non quello che scrivi qui.

DECIDERE UN LIVELLO A MANO

I numeri qui sotto descrivono una CURVA: interval-ms con speed-per-level, storage con storage-per-level, radius con radius-per-level. Tre numeri descrivono dieci livelli, e continuano a funzionare quando decidi di averne quindici.

Quando vuoi che un livello sia un salto vero - il livello per cui si mettono da parte i soldi - aggiungi a quel mestiere una tabella "levels" e scrivilo:

levels:
  5:
    interval-ms: 12000
    storage: 900
  10:
    radius: 6
    interval-ms: 8000

Si legge "DA questo livello in su", come tool-by-level ed enchants: scrivere 5 e 10 vuol dire che la riga del 5 vale dal livello 5 al 9. Quello che non scrivi continua a seguire la curva, cosi' descrivi solo i livelli che contano invece di elencarli tutti.

Cosa ci puo' andare: interval-ms, amount, radius, storage. Il resto viene ignorato, e il plugin lo dice all'avvio.

I SETTE MOTORI

miner       rompe il blocco DAVANTI a se', uno per azione, nel tempo che
            ci metterebbe un giocatore con il suo piccone - e tiene i drop
            veri. Guarda due blocchi avanti al livello uno, uno in piu' ogni
            tre livelli, fino a cinque. Guarda dove era girato quando e'
            stato piazzato. E' quello per cui si costruisce un generatore
            di cobblestone.
lumberjack  abbatte l'albero intero la cui BASE sta nel suo raggio - tronco,
            rami e foglie, alberi 2x2 compresi - tiene i drop veri e
            ripianta la base con i germogli che l'albero ha dato (quattro per
            un albero 2x2). Solo alberi cresciuti: mai una casa di tronchi.
farmer      raccoglie quello che e' MATURO nel suo raggio con i drop che
            avrebbe un giocatore, ripianta UN seme di quello che ha raccolto
            (o uno dal suo magazzino), semina la terra arata vuota con i semi
            che ha, e zappa la terra che ha acqua entro quattro blocchi.
fisher      lancia, aspetta che abbocchi, tira su: pesci, spazzatura e tesori
            con le probabilita' del gioco. La fortuna cresce con il livello.
killer      uccide i mob ostili PER DAVVERO e tiene quello che lasciano
            davvero; Looting, Sweeping (piu' mob per turno) e Fire Aspect
            arrivano con i livelli, vedi "enchants".
feeder      rifornisce di carburante i minion collegati. Si riempie da un
            hopper sopra la testa, da una cassa collegata, o a mano. Niente
            raggio: arriva a quelli collegati, fino a "max-links".
breeding    fa accoppiare gli animali intorno a se' con il cibo che prende
            dalla sua CASSA COLLEGATA finche' la mandria arriva a
            "herd.max", poi macella un adulto per turno - con i drop che
            avrebbe un giocatore - e tiene carne, cuoio e piume.

UN TURNO DAL VIVO E' UN'AZIONE VERA. Un mestiere che prende i drop veri non moltiplica mai quello che ha appena raccolto: i cicli che recupera sono solo quelli che non ha potuto fare perche' il chunk era scarico o il server spento, e quelli usano il campione ricordato (sotto).

LE CHIAVI DI UN MESTIERE

engine                 uno dei sette qui sopra. Obbligatorio.
name                   quello che vede il giocatore, con i colori. TRADUCIBILE.
icon                   il materiale dell'icona e dell'oggetto da piazzare
head                   la texture di una testa: l'URL intero, l'hash esadecimale
                       o il blob base64. Vuoto usa l'icona.
model                  un modello di ShadowCustomizer, vuoto per l'aspetto normale
interval-ms            l'attesa fra due azioni al livello 1
speed-per-level        quanto ogni livello la accorcia, 0.08 = 8%
amount                 NON sono oggetti per azione: nessun motore di serie usa
                       una tabella, oggi. E' solo la base della "resa per
                       azione" mostrata nel pannello dei livelli. Lascia 1.
yield-per-level        quanto ogni livello moltiplica quello che raccoglie
                       un'azione, drop veri compresi: x(1 + questo x
                       (livello - 1)), arrotondato a un numero intero. A 0.10
                       vuol dire x1 fino al livello 5 e x2 dal livello 6.
radius                 quanti blocchi guarda, al livello 1
radius-per-level       quanti in piu' per livello
max-radius             il tetto del raggio
storage                quanti oggetti stanno nel magazzino al livello 1
storage-per-level      quanti in piu' per livello
max-level              fin dove puo' salire
experience-per-action  quanta esperienza vale un'azione
experience-base        l'esperienza per passare dal livello 1 al 2
experience-growth      quanto quel costo si moltiplica a ogni livello
fuel                   se questo mestiere puo' bruciare carburante
offline-production     se produce mentre il giocatore e' via
blocks                 SU QUALI blocchi puo' lavorare. LASCIALO VUOTO e lavora
                       su qualunque cosa trovi - e' quello che rende un
                       minatore un minatore invece del minion di un solo
                       materiale. Riempilo solo per restringere.
world                  cosa lascia dietro di se', e quanto avanti scava
produce                una tabella di oggetti con i pesi. NESSUN motore di serie
                       la legge, oggi: sei dei sette prendono i drop veri e il
                       rifornitore distribuisce carburante, quindi scriverne
                       una non cambia niente. Lo stesso vale per "recipes",
                       rimasto dal fonditore, che non esiste piu'.
enchants               killer / breeding: gli incantesimi dell'attrezzo per
                       livello del minion, "da questo livello in su":
                         enchants: { looting: {3: 1, 6: 2, 9: 3} }
                       looting = piu' bottino, sweeping = un mob in piu' per
                       turno per livello, fire-aspect = carne cotta.
herd.max               solo breeding: la grandezza della mandria che tiene
luck-per-level         solo fisher: Fortuna del mare per livello (0.5 = il
                       livello 7 pesca come una canna con Fortuna del mare III)
links-per-level        solo feeder: quanti minion in piu' per livello
max-links              solo feeder: il tetto dei minion collegati
scheme                 il disegno di come piazzarlo, mostrato nel pannello:
                       "rows" (cinque stringhe di nove lettere, viste
                       dall'alto, M = il minion, . = niente), "legend" (cosa
                       e' ogni lettera: item, name, lore) e "lines". Nomi,
                       lore e lines accettano "lang:<key>" come "name".
price / currency       quanto vale, per mostrarlo nell'elenco dei mestieri

IL BLOCCO "world"

consume                se il blocco viene tolto, o solo rimesso
regenerate-after-ms    quanto prima che torni, 0 = mai
replant                se pianta un germoglio dove c'era il tronco
height                 quanti blocchi guarda in su e in giu', per lato
depth                  quanto AVANTI il minatore cerca un blocco al livello 1
max-depth              il tetto della profondita'. La profondita' cresce di uno
                       ogni tre livelli e si ferma qui.

Il raggio e' simmetrico apposta: "radius: 3" vuol dire tre blocchi su ognuno dei quattro lati, mai tre da una parte e due dall'altra, a ogni livello. La profondita' e' l'unica eccezione ed e' direzionale per scelta: e' quello che fa sembrare un minatore uno che scava una galleria.

COSA PRODUCE UN MINION MENTRE SEI VIA

Un mestiere che prende i drop veri non puo' guardare il mondo mentre il chunk e' scarico, e la produzione da assente e' CALCOLATA e mai simulata - l'alternativa e' simulare seicentomila blocchi rotti quando qualcuno rientra, che e' il modo di buttare giu' un server.

Cosi' il minion RICORDA l'ultimo raccolto vero che ha fatto e continua a produrre quello mentre sei via. Un minatore davanti a un generatore di cobblestone ha raccolto cobblestone, quindi continua a produrre cobblestone. Cambia il muro davanti a lui e il ricordo si aggiorna da solo alla sua prima azione dal vivo.

Un minion appena piazzato non ha ancora un ricordo e non produce niente mentre sei via. E' onesto: non ha mai visto cosa ha davanti. Guardalo lavorare una volta ed e' a posto.

Nota che un mestiere che prende i drop veri CONSUMA i blocchi che rompe, cicli da assente esclusi. Un minatore senza generatore davanti prima o poi finisce il muro e si ferma - ed e' proprio per questo che ci si mette un generatore.

config-version2
jobs7 chiavi

Minatore

Mettigli davanti un generatore di cobblestone. Questa frase è tutto il design di questo lavoro: rompe quello che trova davanti e tiene quello che dà quel blocco, così il generatore riempie di nuovo il muro e il minion non resta mai a secco.

Continua a leggere

"blocks" è vuoto, quindi scava QUALUNQUE cosa riesca a rompere. Riempi la lista se vuoi limitarlo - per esempio per impedirgli di mangiarsi un'isola fatta di terra.

jobs.miner24 chiavi
engineminer

Quale dei sette motori lo muove. Non è un'etichetta: decide cosa fa davvero il minion, e non si può inventare.

name'lang:job.miner.name'

Quello che un GIOCATORE legge sopra la sua testa e nei menu: una chiave in lang/, oppure un tuo testo, mostrato così com'è.

iconIRON_PICKAXE

L'item che rappresenta questo lavoro nei menu.

jobs.miner.tool-by-level4 chiavi

Il piccone con cui scava, "da questo livello in su". Decide QUANTO TEMPO ci mette un blocco - lo stesso tempo che servirebbe a un giocatore con quel piccone in mano, penalità compresa quando il tier è troppo basso per il blocco - e mai COSA raccoglie: il minatore prende sempre quello che il blocco dà a un piccone adatto, diamanti anche con uno di pietra. Solo più lentamente. Togli tutta la sezione e scava a velocità diamante a ogni livello.

1STONE_PICKAXE
4IRON_PICKAXE
7DIAMOND_PICKAXE
10NETHERITE_PICKAXE
jobs.miner
head''
interval-ms24000

Millisecondi tra un'azione e la successiva AL LIVELLO 1. 24000 = un'azione ogni 24 secondi. Più basso è più veloce.

speed-per-level0.08

Quanto ogni livello accorcia quell'attesa. 0.08 = 8% più veloce per livello, e si compone: al livello 10 l'attesa è circa la metà.

yield-per-level0.10

Quanto ogni livello moltiplica quello che raccoglie un'azione - anche i drop veri - arrotondato a un numero intero: a 0.10 resta x1 fino al livello 5 e x2 dal livello 6 al 10.

radius1

Fin dove arriva AL LIVELLO 1, in blocchi intorno a sé.

radius-per-level0

Di quanti blocchi cresce la portata per livello. 0 = non cresce mai.

max-radius1

Il tetto di quella crescita, qualunque cosa dica il livello.

storage384

Quanti item contiene il suo magazzino AL LIVELLO 1. Pieno significa che si ferma e lo dice sopra la sua testa.

storage-per-level64

Quanti ne guadagna il magazzino per livello.

max-level10

Il livello più alto che questo lavoro può raggiungere con i potenziamenti.

experience-per-action1

Esperienza guadagnata con UNA azione. Moltiplicala per le azioni di una giornata per vedere quanto ci vuole davvero per un livello.

experience-base50

Esperienza necessaria per passare dal livello 1 al livello 2.

experience-growth1.6

Di quanto si moltiplica quel costo a ogni livello. 1.6 significa che ogni livello costa il 60% in più del precedente.

fueltrue

Se questo lavoro brucia carburante mentre lavora (vedi fuel in config.yml).

offline-productiontrue

Se continua a lavorare mentre il proprietario è via.

blocks[ ]

Vuoto: scava qualunque cosa trovi davanti a sé.

jobs.miner.world6 chiavi
consumetrue
regenerate-after-ms0

Il blocco non torna da solo: quello che riempie di nuovo il muro è il generatore che ci metti, ed è questo il senso di questo lavoro.

replantfalse
height0

ZERO, ed è importante: il minatore scava alla SUA altezza e da nessun'altra parte. Alzalo e rompe anche i blocchi sopra e sotto la linea - che su un terreno piatto significa scavarsi una buca sotto i piedi invece di un corridoio davanti.

depth2

Quanto AVANTI cerca un blocco: due al livello 1, uno in più ogni tre livelli, fino a cinque. Rompe UN blocco per azione, il più vicino, e ci mette il tempo che quel blocco richiede con il piccone del suo livello.

max-depth5
jobs.miner
price0

Quanto costa nello shop. Toglilo e non si può comprare.

currency''

In quale valuta è quel prezzo.

jobs.miner.scheme3 chiavi

Lo schema di colori del suo pannello, da menus/scheme.yml.

rows
[........., ....W...., ..M.SC..., ....L...., .........]+2
jobs.miner.scheme.legend4 chiavi
S
{ item: STONE, name: 'lang:job.miner.legend.block', lore: ['lang:job.miner.legend.block-lore'] }+2
W
{ item: WATER_BUCKET, name: 'lang:job.miner.legend.water', lore: ['lang:job.miner.legend.water-lore'] }+2
L
{ item: LAVA_BUCKET, name: 'lang:job.miner.legend.lava', lore: ['lang:job.miner.legend.lava-lore'] }+2
C
{ item: COBBLESTONE, name: 'lang:job.miner.legend.cobblestone', lore: ['lang:job.miner.legend.cobblestone-lore'] }+2
jobs.miner.scheme
lines["lang:job.miner.scheme"]

Taglialegna

Pianta dei sapling intorno a lui e al resto pensa lui: abbatte l'albero intero la cui base è nel suo raggio - tronco, rami, foglie, anche alberi 2x2 - in un'azione, e ripianta la base con i sapling dati dalle foglie (quattro per una quercia scura). Solo alberi cresciuti: una casa di tronchi non ha foglie cresciute e non viene mai toccata.

jobs.lumberjack22 chiavi
enginelumberjack

Quale dei sette motori lo muove. Non è un'etichetta: decide cosa fa davvero il minion, e non si può inventare.

name'lang:job.lumberjack.name'

Quello che un GIOCATORE legge sopra la sua testa e nei menu: una chiave in lang/, oppure un tuo testo, mostrato così com'è.

iconIRON_AXE

L'item che rappresenta questo lavoro nei menu.

interval-ms30000

Millisecondi tra un'azione e la successiva AL LIVELLO 1. 24000 = un'azione ogni 24 secondi. Più basso è più veloce.

speed-per-level0.08

Quanto ogni livello accorcia quell'attesa. 0.08 = 8% più veloce per livello, e si compone: al livello 10 l'attesa è circa la metà.

yield-per-level0.10

Quanto ogni livello moltiplica quello che raccoglie un'azione - anche i drop veri - arrotondato a un numero intero: a 0.10 resta x1 fino al livello 5 e x2 dal livello 6 al 10.

radius3

Fin dove arriva AL LIVELLO 1, in blocchi intorno a sé.

radius-per-level0.2

Di quanti blocchi cresce la portata per livello. 0 = non cresce mai.

max-radius6

Il tetto di quella crescita, qualunque cosa dica il livello.

storage384

Quanti item contiene il suo magazzino AL LIVELLO 1. Pieno significa che si ferma e lo dice sopra la sua testa.

storage-per-level64

Quanti ne guadagna il magazzino per livello.

max-level10

Il livello più alto che questo lavoro può raggiungere con i potenziamenti.

experience-per-action2

Esperienza guadagnata con UNA azione. Moltiplicala per le azioni di una giornata per vedere quanto ci vuole davvero per un livello.

experience-base55

Esperienza necessaria per passare dal livello 1 al livello 2.

experience-growth1.6

Di quanto si moltiplica quel costo a ogni livello. 1.6 significa che ogni livello costa il 60% in più del precedente.

fueltrue

Se questo lavoro brucia carburante mentre lavora (vedi fuel in config.yml).

offline-productiontrue

Se continua a lavorare mentre il proprietario è via.

blocks[ ]

Vuoto: qualunque tipo di tronco. Riempilo per limitarlo a un solo legno.

jobs.lumberjack.world4 chiavi
consumetrue
regenerate-after-ms0
replanttrue

Senza questo la foresta finisce e il minion si ferma da solo.

height2
jobs.lumberjack
price0

Quanto costa nello shop. Toglilo e non si può comprare.

currency''

In quale valuta è quel prezzo.

jobs.lumberjack.scheme3 chiavi

Lo schema di colori del suo pannello, da menus/scheme.yml.

rows
[T...T...T, ........., T...M...T, ........., T...T...T]+2
jobs.lumberjack.scheme.legend1 chiave
T
{ item: OAK_SAPLING, name: 'lang:job.lumberjack.legend.saplings', lore: ['lang:job.lumberjack.legend.saplings-lore'] }+2
jobs.lumberjack.scheme
lines["lang:job.lumberjack.scheme"]

Contadino

Raccoglie tutto ciò che è maturo intorno a lui - grano, carote, patate, barbabietole, verruca del Nether, bacche, cacao - con i drop che otterrebbe un giocatore, e rimette UN seme (dal raccolto, o dal suo magazzino). Semina anche la terra arata vuota con i semi che ha e zappa la terra che ha acqua entro quattro blocchi. Un'azione per turno, un minion per un campo.

jobs.farmer22 chiavi
enginefarmer

Quale dei sette motori lo muove. Non è un'etichetta: decide cosa fa davvero il minion, e non si può inventare.

name'lang:job.farmer.name'

Quello che un GIOCATORE legge sopra la sua testa e nei menu: una chiave in lang/, oppure un tuo testo, mostrato così com'è.

iconIRON_HOE

L'item che rappresenta questo lavoro nei menu.

interval-ms26000

Millisecondi tra un'azione e la successiva AL LIVELLO 1. 24000 = un'azione ogni 24 secondi. Più basso è più veloce.

speed-per-level0.08

Quanto ogni livello accorcia quell'attesa. 0.08 = 8% più veloce per livello, e si compone: al livello 10 l'attesa è circa la metà.

yield-per-level0.10

Quanto ogni livello moltiplica quello che raccoglie un'azione - anche i drop veri - arrotondato a un numero intero: a 0.10 resta x1 fino al livello 5 e x2 dal livello 6 al 10.

radius3

Fin dove arriva AL LIVELLO 1, in blocchi intorno a sé.

radius-per-level0.2

Di quanti blocchi cresce la portata per livello. 0 = non cresce mai.

max-radius6

Il tetto di quella crescita, qualunque cosa dica il livello.

storage384

Quanti item contiene il suo magazzino AL LIVELLO 1. Pieno significa che si ferma e lo dice sopra la sua testa.

storage-per-level64

Quanti ne guadagna il magazzino per livello.

max-level10

Il livello più alto che questo lavoro può raggiungere con i potenziamenti.

experience-per-action1

Esperienza guadagnata con UNA azione. Moltiplicala per le azioni di una giornata per vedere quanto ci vuole davvero per un livello.

experience-base50

Esperienza necessaria per passare dal livello 1 al livello 2.

experience-growth1.6

Di quanto si moltiplica quel costo a ogni livello. 1.6 significa che ogni livello costa il 60% in più del precedente.

fueltrue

Se questo lavoro brucia carburante mentre lavora (vedi fuel in config.yml).

offline-productiontrue

Se continua a lavorare mentre il proprietario è via.

blocks[ ]

Vuoto: qualunque cosa maturi. Riempilo per limitarlo a una sola coltura.

jobs.farmer.world4 chiavi
consumefalse

La coltura viene rotta come farebbe un giocatore e ripiantata con un seme; la terra arata sotto non viene mai toccata.

regenerate-after-ms0
replantfalse
height1
jobs.farmer
price0

Quanto costa nello shop. Toglilo e non si può comprare.

currency''

In quale valuta è quel prezzo.

jobs.farmer.scheme3 chiavi

Lo schema di colori del suo pannello, da menus/scheme.yml.

rows
[CCCCCCCCC, CCCCCCCCC, CCCCMCCCC, CCCCWCCCC, CCCCCCCCC]+2
jobs.farmer.scheme.legend2 chiavi
C
{ item: WHEAT, name: 'lang:job.farmer.legend.crops', lore: ['lang:job.farmer.legend.crops-lore'] }+2
W
{ item: WATER_BUCKET, name: 'lang:job.farmer.legend.water', lore: ['lang:job.farmer.legend.water-lore'] }+2
jobs.farmer.scheme
lines["lang:job.farmer.scheme"]

Pescatore

Gli serve acqua nel suo raggio e non tocca proprio niente. Lancia, aspetta che abbocchi e tira su, con le probabilità del gioco: pesci 85%, spazzatura 10%, tesori 5%. "luck-per-level" è Luck of the Sea per livello: ogni punto ne sposta due dalla spazzatura ai tesori.

jobs.fisher23 chiavi
enginefisher

Quale dei sette motori lo muove. Non è un'etichetta: decide cosa fa davvero il minion, e non si può inventare.

name'lang:job.fisher.name'

Quello che un GIOCATORE legge sopra la sua testa e nei menu: una chiave in lang/, oppure un tuo testo, mostrato così com'è.

iconFISHING_ROD

L'item che rappresenta questo lavoro nei menu.

interval-ms34000

Millisecondi tra un'azione e la successiva AL LIVELLO 1. 24000 = un'azione ogni 24 secondi. Più basso è più veloce.

speed-per-level0.07

Quanto ogni livello accorcia quell'attesa. 0.08 = 8% più veloce per livello, e si compone: al livello 10 l'attesa è circa la metà.

yield-per-level0.08

Quanto ogni livello moltiplica quello che porta una pescata, arrotondato a un numero intero: a 0.08 resta x1 fino al livello 7 e x2 dal livello 8 al 10.

luck-per-level0.5

Solo pescatore: Luck of the Sea guadagnata per livello.

radius3

Fin dove arriva AL LIVELLO 1, in blocchi intorno a sé.

radius-per-level0.2

Di quanti blocchi cresce la portata per livello. 0 = non cresce mai.

max-radius6

Il tetto di quella crescita, qualunque cosa dica il livello.

storage320

Quanti item contiene il suo magazzino AL LIVELLO 1. Pieno significa che si ferma e lo dice sopra la sua testa.

storage-per-level48

Quanti ne guadagna il magazzino per livello.

max-level10

Il livello più alto che questo lavoro può raggiungere con i potenziamenti.

experience-per-action2

Esperienza guadagnata con UNA azione. Moltiplicala per le azioni di una giornata per vedere quanto ci vuole davvero per un livello.

experience-base60

Esperienza necessaria per passare dal livello 1 al livello 2.

experience-growth1.6

Di quanto si moltiplica quel costo a ogni livello. 1.6 significa che ogni livello costa il 60% in più del precedente.

fueltrue

Se questo lavoro brucia carburante mentre lavora (vedi fuel in config.yml).

offline-productiontrue

Se continua a lavorare mentre il proprietario è via.

blocks[ ]
jobs.fisher.world4 chiavi
consumefalse
regenerate-after-ms0
replantfalse
height1
jobs.fisher
price0

Quanto costa nello shop. Toglilo e non si può comprare.

currency''

In quale valuta è quel prezzo.

jobs.fisher.scheme3 chiavi

Lo schema di colori del suo pannello, da menus/scheme.yml.

rows
[........., ..WWWWW.., ..WWWWW.., ..WWWWW.., ....M....]+2
jobs.fisher.scheme.legend1 chiave
W
{ item: WATER_BUCKET, name: 'lang:job.fisher.legend.water', lore: ['lang:job.fisher.legend.water-lore'] }+2
jobs.fisher.scheme
lines["lang:job.fisher.scheme"]

Killer

Uccide i mob ostili davvero, quindi Minecraft calcola il loro loot esattamente come farebbe - compresi i mob di qualunque altro plugin - e il minion lo tiene, senza mai farlo cadere a terra. La sua spada cresce con i livelli: vedi "enchants". Sweeping è quanti mob IN PIÙ colpisce per turno.

Continua a leggere

Genera un vero evento di morte, quindi qualunque cosa sul tuo server reagisca alla morte di un mob reagirà anche a questo. Mentre il proprietario è via produce quello che ha dato la sua ultima uccisione vera.

jobs.killer22 chiavi
enginekiller

Quale dei sette motori lo muove. Non è un'etichetta: decide cosa fa davvero il minion, e non si può inventare.

name'lang:job.killer.name'

Quello che un GIOCATORE legge sopra la sua testa e nei menu: una chiave in lang/, oppure un tuo testo, mostrato così com'è.

iconDIAMOND_SWORD

L'item che rappresenta questo lavoro nei menu.

interval-ms26000

Millisecondi tra un'azione e la successiva AL LIVELLO 1. 24000 = un'azione ogni 24 secondi. Più basso è più veloce.

speed-per-level0.07

Quanto ogni livello accorcia quell'attesa. 0.08 = 8% più veloce per livello, e si compone: al livello 10 l'attesa è circa la metà.

amount1
yield-per-level0.10

Attenzione con questo: moltiplica loot che nessuno ha scritto.

radius4

Fin dove arriva AL LIVELLO 1, in blocchi intorno a sé.

radius-per-level0.25

Di quanti blocchi cresce la portata per livello. 0 = non cresce mai.

max-radius8

Il tetto di quella crescita, qualunque cosa dica il livello.

storage384

Quanti item contiene il suo magazzino AL LIVELLO 1. Pieno significa che si ferma e lo dice sopra la sua testa.

storage-per-level64

Quanti ne guadagna il magazzino per livello.

max-level10

Il livello più alto che questo lavoro può raggiungere con i potenziamenti.

experience-per-action2

Esperienza guadagnata con UNA azione. Moltiplicala per le azioni di una giornata per vedere quanto ci vuole davvero per un livello.

experience-base70

Esperienza necessaria per passare dal livello 1 al livello 2.

experience-growth1.7

Di quanto si moltiplica quel costo a ogni livello. 1.6 significa che ogni livello costa il 60% in più del precedente.

fueltrue

Se questo lavoro brucia carburante mentre lavora (vedi fuel in config.yml).

offline-productiontrue

Se continua a lavorare mentre il proprietario è via.

blocks[ ]
jobs.killer.world4 chiavi
consumefalse
regenerate-after-ms0
replantfalse
height2
jobs.killer.enchants3 chiavi
looting{ 3: 1, 6: 2, 9: 3 }
sweeping{ 4: 1, 8: 2 }
fire-aspect{ 5: 1 }
jobs.killer.scheme3 chiavi

Lo schema di colori del suo pannello, da menus/scheme.yml.

rows
[XXXXXXXXX, X.......X, X...M...X, X.......X, XXXXSXXXX]+2
jobs.killer.scheme.legend2 chiavi
X
{ item: COBBLESTONE, name: 'lang:job.killer.legend.room', lore: ['lang:job.killer.legend.room-lore'] }+2
S
{ item: SPAWNER, name: 'lang:job.killer.legend.spawner', lore: ['lang:job.killer.legend.spawner-lore'] }+2
jobs.killer.scheme
lines["lang:job.killer.scheme"]

Rifornitore

Il minion che fa andare avanti gli altri. Collegagli gli altri minion dal suo pannello e li rifornisce da solo, servendo sempre quello più a corto.

Continua a leggere

TRE MODI PER RIEMPIRLO, e li controlla in quest'ordine:

- un HOPPER sopra la sua testa: ci butti dentro il carbone e scende da solo
- una CASSA collegata dal suo pannello: attinge da lì finché c'è
  ancora qualcosa
- il suo magazzino, riempito a mano dal pannello - o da un minatore
  collegato a lui come fosse la SUA cassa, che è il ciclo che vale la
  pena costruire

Raggiunge un minion in più per livello, fino a "max-links". Il tetto è voluto: senza, un solo rifornitore di livello alto coprirebbe un'isola intera e il lavoro sarebbe un interruttore invece di una decisione. Con il tetto, un'isola grande ne vuole due o tre e dove li metti conta.

jobs.feeder23 chiavi
enginefeeder

Quale dei sette motori lo muove. Non è un'etichetta: decide cosa fa davvero il minion, e non si può inventare.

name'lang:job.feeder.name'

Quello che un GIOCATORE legge sopra la sua testa e nei menu: una chiave in lang/, oppure un tuo testo, mostrato così com'è.

iconBLAST_FURNACE

L'item che rappresenta questo lavoro nei menu.

interval-ms15000

Millisecondi tra un'azione e la successiva AL LIVELLO 1. 24000 = un'azione ogni 24 secondi. Più basso è più veloce.

speed-per-level0.05

Quanto ogni livello accorcia quell'attesa. 0.08 = 8% più veloce per livello, e si compone: al livello 10 l'attesa è circa la metà.

yield-per-level0

Non usato: un rifornitore non raccoglie niente, quindi resta a 0.

radius1

Un rifornitore non ha raggio: raggiunge tutto ciò che gli è collegato, ovunque sia, e il pannello non ne mostra uno. Il valore resta a 1 solo perché ogni lavoro ha la chiave.

radius-per-level0

Di quanti blocchi cresce la portata per livello. 0 = non cresce mai.

max-radius1

Il tetto di quella crescita, qualunque cosa dica il livello.

storage512

Quanti item contiene il suo magazzino AL LIVELLO 1. Pieno significa che si ferma e lo dice sopra la sua testa.

storage-per-level128

Quanti ne guadagna il magazzino per livello.

max-level10

Il livello più alto che questo lavoro può raggiungere con i potenziamenti.

experience-per-action2

Esperienza guadagnata con UNA azione. Moltiplicala per le azioni di una giornata per vedere quanto ci vuole davvero per un livello.

experience-base60

Esperienza necessaria per passare dal livello 1 al livello 2.

experience-growth1.6

Di quanto si moltiplica quel costo a ogni livello. 1.6 significa che ogni livello costa il 60% in più del precedente.

fuelfalse

Un rifornitore non brucia carburante per sé: spenderebbe proprio la cosa che è lì per distribuire.

offline-productiontrue

Se continua a lavorare mentre il proprietario è via.

blocks[ ]
jobs.feeder.world4 chiavi
consumefalse
regenerate-after-ms0
replantfalse
height0
jobs.feeder
produce{ }

Vuoto apposta: quello che produce finisce nel serbatoio di qualcun altro.

jobs.feeder.scheme3 chiavi

Lo schema di colori del suo pannello, da menus/scheme.yml.

rows
[....H...., ....M...., ........., m...C...m, .........]+2
jobs.feeder.scheme.legend3 chiavi
H
{ item: HOPPER, name: 'lang:job.feeder.legend.hopper', lore: ['lang:job.feeder.legend.hopper-lore'] }+2
C
{ item: CHEST, name: 'lang:job.feeder.legend.chest', lore: ['lang:job.feeder.legend.chest-lore'] }+2
m
{ item: ARMOR_STAND, name: 'lang:job.feeder.legend.linked', lore: ['lang:job.feeder.legend.linked-lore'] }+2
jobs.feeder.scheme
lines["lang:job.feeder.scheme"]

Allevamento

Collegagli una cassa e mettici dentro il cibo: grano per mucche e pecore, carote per i maiali, semi per le galline - Minecraft sa cosa mangia ogni animale. Fa riprodurre due adulti alla volta finché la mandria intorno a lui non arriva a "herd.max", poi macella un adulto per turno, con i drop che otterrebbe un giocatore, e li tiene. Con Fire Aspect la carne esce cotta. Recinta gli animali: il raggio è dove li cerca.

jobs.breeding22 chiavi
enginebreeding

Quale dei sette motori lo muove. Non è un'etichetta: decide cosa fa davvero il minion, e non si può inventare.

name'lang:job.breeding.name'

Quello che un GIOCATORE legge sopra la sua testa e nei menu: una chiave in lang/, oppure un tuo testo, mostrato così com'è.

iconWHEAT

L'item che rappresenta questo lavoro nei menu.

interval-ms30000

Millisecondi tra un'azione e la successiva AL LIVELLO 1. 24000 = un'azione ogni 24 secondi. Più basso è più veloce.

speed-per-level0.07

Quanto ogni livello accorcia quell'attesa. 0.08 = 8% più veloce per livello, e si compone: al livello 10 l'attesa è circa la metà.

yield-per-level0.10

Quanto ogni livello moltiplica il bottino di una macellazione, arrotondato a un numero intero. Attenzione, come per il killer: moltiplica un bottino che nessuno ha scritto.

radius4

Fin dove arriva AL LIVELLO 1, in blocchi intorno a sé.

radius-per-level0.2

Di quanti blocchi cresce la portata per livello. 0 = non cresce mai.

max-radius8

Il tetto di quella crescita, qualunque cosa dica il livello.

storage320

Quanti item contiene il suo magazzino AL LIVELLO 1. Pieno significa che si ferma e lo dice sopra la sua testa.

storage-per-level48

Quanti ne guadagna il magazzino per livello.

max-level10

Il livello più alto che questo lavoro può raggiungere con i potenziamenti.

experience-per-action1

Esperienza guadagnata con UNA azione. Moltiplicala per le azioni di una giornata per vedere quanto ci vuole davvero per un livello.

experience-base55

Esperienza necessaria per passare dal livello 1 al livello 2.

experience-growth1.6

Di quanto si moltiplica quel costo a ogni livello. 1.6 significa che ogni livello costa il 60% in più del precedente.

fueltrue

Se questo lavoro brucia carburante mentre lavora (vedi fuel in config.yml).

offline-productiontrue

Se continua a lavorare mentre il proprietario è via.

blocks[ ]
jobs.breeding.world4 chiavi
consumefalse
regenerate-after-ms0
replantfalse
height2
jobs.breeding.herd1 chiave

Solo allevamento: quanto può crescere la mandria prima che cominci a sfoltirla.

max30

Quanti animali tiene intorno a sé. Sotto questo numero li fa riprodurre, a questo numero macella un adulto per turno. Trenta è un recinto, non una macchina da lag.

jobs.breeding.enchants2 chiavi
looting{ 4: 1, 7: 2, 10: 3 }
fire-aspect{ 6: 1 }
jobs.breeding.scheme3 chiavi

Lo schema di colori del suo pannello, da menus/scheme.yml.

rows
[FFFFFFFFF, F.A.A.A.F, FA..M..AF, F.A.A.A.F, FFFFCFFFF]+2
jobs.breeding.scheme.legend3 chiavi
F
{ item: OAK_FENCE, name: 'lang:job.breeding.legend.fence', lore: ['lang:job.breeding.legend.fence-lore'] }+2
A
{ item: COW_SPAWN_EGG, name: 'lang:job.breeding.legend.animals', lore: ['lang:job.breeding.legend.animals-lore'] }+2
C
{ item: CHEST, name: 'lang:job.breeding.legend.chest', lore: ['lang:job.breeding.legend.chest-lore'] }+2
jobs.breeding.scheme
lines["lang:job.breeding.scheme"]

Lingue

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

lang/

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

ShadowMinions - Inglese

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 311
lang/it_IT.yml Italiano 311

Segnaposto più usati

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

  • <prefix>
  • <level>
  • <job>
  • <max>
  • <label>
  • <amount>
  • <position>
  • <radius>
  • <reason>
  • <stored>
  • <capacity>
  • <chest>
  • <item>
  • <storage>

Gruppi di messaggi

  • prefix 1
  • common 6
  • state 1
  • command 12
  • confirm 6
  • item 5
  • nameplate 2
  • stop 10
  • breeding 1
  • place 8
  • pickup 4
  • minion 5
  • collect 2
  • fuel 5
  • direction 4
  • facing 1
  • links 9
  • chest 8
  • sell 2
  • upgrade 4
  • skin 9
  • teleport 2
  • info 7
  • stats 19
  • menu 88
  • job 46
  • license 39
  • locked 5

Tutta la documentazione