Nic se nestane “samo”
Je důležité chápat, že se na Minecraft serveru nic nestane “samo”, a vše má nějakou příčinu. Jak samotný Minecraft server, tak pluginy jsou naprogramované určitým způsobem, a podle toho se chovají. Nic se nestane “samo” nebo náhodou.
Pokud se tedy setkáte s něčím neočekávaným, co se stalo bez zjevné příčiny, zkuste si uvědomit, co jste od doby, kdy věc “fungovala správně”, změnili, nebo co by to mohlo způsobit.
Ačkoli dvě věci nemusí na první pohled souviset, může tomu být jinak.
Ku příkladu v moment, kdy změníte nastavení online-mode (zda na server můžou pouze hráči s originální verzí hry), hráči o svá veškerá data přijdou (více o tom proč se můžete dočíst zde). To může na první pohled vypadat jako reset světa, jelikož hráči přijdou o své inventáře a spawnou se na spawn lokaci místo původní poslední lokace, nicméně svět je stále stejný, pouze hráči nemají svá původní data.
Dalším takovým příkladem může být změna názvu světa. V moment, kdy změníte název hlavního světa, je nutno změnit i složku světa na název tohoto nového světa, jelikož Minecraft server bere data světa ze složky odpovídající názvu hlavního světa. V případě, kdy nezměníte název složky, Minecraft server žádnou složku odpovídající názvu světa nenajde, a tím pádem vytvoří nový svět. To se ale dá jednoduše vyřešit smazáním nově vytvořeného světa a přejmenování původního složky původního světa na aktuální název světa (při vypnutém serveru).
Posledním příkladem je zapínání pluginů. Plugin se zapne, pokud je to .jar soubor nahraný ve složce /plugins/. Tím pádem pokud .jar souboru změníte příponu na cokoli jiného, například .jarr, plugin se nezapne.
Pokud je složka /plugins/ přejmenována na /pluginss/, nezapne se žádný plugin, jelikož je server naprogramovaný tak, aby zapl pluginy nahrané ve složce /plugins/. Tím pádem pokud složku /pluginss/ přejmenujete zpět na /plugins/, vše se vrátí do původního stavu a všechny pluginy se opět zapnou.
Tato část může úzce souviset s částí následující.
Vše musí být někde uloženo
Ačkoli to může znít triviálně, jedná se o často nepochopený princip, který je důležitý chápat.
Všechna data jsou vždy někdě uložena. V operační paměti (RAM) jsou uložena data, s kterými server v momentální chvíli pracuje. Data, která mají přetrvat i po restartu serveru, jsou v průběhu běhu, nebo při vypnutí serveru, uložena na disk (do souborů). V moment, kdy s daty server potřebuje pracovat jsou načtena zpět do paměti.
Pokaždé, když se samotný Minecraft server, nebo plugin snaží přečíst data, jsou čtena ze souborů na disku. Například data světa a
(nepluginová data) hráčů jsou uložena ve složce světa (v základu /world/), data a konfigurace pluginů ve složce /plugins/jmenoPluginu/ a tak dále. Z tohoto určitého místa jsou poté data čtena. Když tedy chcete nahrát zálohu z jiného serveru, stačí ji nahrát do složky serveru a rozbalit ji. To je vše - jde jen o soubory, které je třeba umístit na správné místo.
To je důvodem, proč při změně typu úložiště (např. z H2 na MySQL) v pluginu existující data “zmizí”. Ve skutečnosti data stále existují, ale plugin již data ukládá a čte z MySQL místo disku (v případě H2). Z toho důvodu, pokud chcete existující data používat i po změně úložiště, je nutno data z původního úložiště do nového přemigrovat.
Tím pádem pokud obnovíte zálohu serveru, server bude v úplně stejném stavu, jako v moment, kdy byla záloha vytvořena, jelikož všechna data jsou uložena v souborech. To jsou v základu úplně veškerá data serveru jako světy, data hráčů či nastavení a data pluginů. Pokud je však plugin napojen na samostatnou databázi, jako například MySQL, data pluginu i po obnovení zálohy samotného serveru zůstanou logicky nepozměněna, jelikož záloha serveru obsahuje pouze data samotného serveru a samotaná databáze běží jako separátní služba.
Tím pádem odpověď na otázku typu “Jak vrátit odehraný čas, když jsem obnovil zálohu? Používám na to plugin XY” je taková, že v případě, kdy
by se data pluginu, ve kterém je odehraný čas uložený, nacházela ve složce /plugins/PlayTime/, například v souboru data.db, stačilo by soubor, v kterém jsou data s odehraným časem (v tomto případě tedy data.db) uložena ze zálohy vzít a nahradit aktuální soubor data.db. Tím by se statistiky odehraného času vrátily do stavu v čase vytvoření zálohy. Proč tomu tak je je nejspíš zřejmé.
Když smažete soubor s bany (v základu banned-players.json) a změny (restartem) načtete, všichni hráči budou odbanováni. Tak by se dalo pokračovat u všeho.