Hai usato per caso la versione a cui mi riferisco nel titolo? Proprio quella che abbiamo rilasciato insieme alla release 0.11.1 della mod?
Bene, c'è un piccolo problema, in quanto probabilmente tutti gli eventi che hai creato con quella versione sono rotti. Leggi attentamente questo documento.
Devi cancellare dal file server_data.json
tutti gli eventi creati con quella versione, e mettere nel file last_id.txt
un numero intero più grande del numerocdi eventi che hai creato da quando hai iniziato ad usare il programma.
Prima di spiegare il problema, è necessario capire la logica del programma.
Quando crei il primo evento vengono generati due file dentro la cartella del programma (questo originariamente, ora vengono creati nella sottocartella data
):
server_data.json
: contiene gli eventi che vengono letti dalla mod con tutte le informazioni collegate.last_id.txt
: contiene il numero di eventi creati (attenzione, creati, non attivati ingame) da quando hai aperto il programma per la prima volta.
Questi due file vengono letti una volta all'avvio del programma, e aggiornati ad ogni creazione (entrambi) o rimozione/modifica degli eventi preesistenti (solo server_data.json
).
Ogni volta che si crea un evento ad esso viene associato un id del tipo tipo_evento-ultimo_id
, dove ultimo_id
corrisponde al numero presente in last_id.txt
+ 1.
Dato che la mod non esegue un evento se presenta un id che ha già visto in passato, questo permette di distinguere automaticamente gli eventi tra loro.
Arriviamo al problema della versione fatidica: nella versione rotta il file last_id.txt
non veniva caricato all'avvio, quindi ogni volta che si avviava il programma veniva riportato a 0.
Vediamo un esempio: è la prima sessione che fai con il programma attivo, apri la webapp e crei il primo evento per far spawnare nel mondo della persona che ha la mod una tenda del ricercatore.
Nel file server_data.json
verrà generato un evento così (per capire il formato puoi leggere qui, ma non è necessario):
{
"id": "structure-1", // L'ID è qua
"type": "structure",
"structure": "growsseth:researcher_tent",
"x": 0,
"y": 100,
"z": 0,
"active": false,
"rotation": "none"
}
Una volta fatto ciò lasci giocare la persona con la mod normalmente, non usi più la webapp e spegni il pc. Il giorno dopo giocate di nuovo, e decidi di spawnare una caverna con i funghi sotto la tenda:
{
"id": "structure-1", // Non è diventato 2!
"type": "structure",
"structure": "growsseth:cave_camp",
"x": 0,
"y": 0,
"z": 0,
"active": false,
"rotation": "none"
}
Come puoi vedere, dato che l'id si è resettato a 0 il nuovo evento creato lo ha impostato ad 1! La mod leggerà "id": "structure-1"
e lo ignorerà, perché ha già eseguito il giorno prima un evento con lo stesso id. Nel tuo caso probabilmente avrai notato che molti eventi non venivano eseguiti dalla mod, e il motivo è questo.
Per risolvere il problema per fortuna c'è una soluzione: per prima cosa aggiorna il sito, o con la versione di questo repository o con la versione fixata ripubblicata nel repository della mod, poi trasferisciti i file server_data.json
e last_id.txt
della versione rotta alla nuova versione (mettili nella sottocartella data
se hai scaricato la versione di questo repository), aprili con il tuo editor di testo preferito ed esegui queste operazioni:
- Nel file
server_data.json
è consigliato cancellare tutti gli eventi che hai creato con la versione; perderai lo storico anche di quelli che hanno funzionato, ma almeno avrai la certezza che tutto quello che appare nel sito è stato effetivamente registrato dalla mod e non rischierai di confonderti in futuro. In alternativa puoi mantenere quelli che ricordi essere stati eseguiti. - Nel file
last_id.txt
inserisci un numero superiore al numero di eventi che credi di aver creato dall'inizio alla fine, se non sei sicuro metti qualcosa come 100 o 1000 e dovresti essere a posto.
Una volta fatto ciò, avvia la webapp e dovrebbe essere tutto a posto. Prova a chiedere alla persona con cui giochi di fare un piccolo test, magari mandando una notifica, chiudendo l'app dal terminale e riaprendola, e creando una nuova notifica. Se la seconda notifica viene mostrata in gioco, vuol dire che il problema è risolto.