Když něco nehraje
Těch pár věcí, co se doopravdy pokazí, a jak každá vypadá.
Na téhle stránce 8 částí
Každá z těchhle věcí se doopravdy stala, a je napsaná tak, jak ji uvidíš, ne jako kategorie.
Konzole nikdy neřekne „Keystone is running"
#Soubor je pro jiný loader nebo jinou verzi Minecraftu. Ta čtyři jména se liší přesně těmi dvěma slovy a je snadné vzít ze seznamu špatné. Loader to obvykle o pár řádek dřív říká sám, svými slovy.
Na Fabricu k tomu chybívá Fabric API — bez něj se mod nenačte a Fabric to napíše.
/keystone ti řekne, že nesmíš
#Keystone má vlastní oprávnění a schválně nečte operátorskou úroveň Minecraftu — aby „smí restartovat server" a „smí létat" byly dvě různé otázky. Z konzole, která smí vždycky:
keystone permission group admin add <tvoje jméno>
Na 0.1.0 tu skupinu musíš nejdřív vyrobit — jediná, která na čerstvém serveru existuje, je default a jsou v ní všichni:
keystone permission group admin create 100
keystone permission group admin allow keystone.*
keystone permission group admin add <tvoje jméno>
Od 0.1.1 už admin existuje s keystone.* a je prázdná, takže stačí ta jedna řádka.
Pozor na to slovo uprostřed: je to permission group, ne group.
Odkaz na editor se neotevře
#/keystone panel staví odkaz z adresy, na které lokální API poslouchá — a ta je ve výchozím stavu 127.0.0.1, tedy stroj, kde běží server. U hostovaného serveru máš dvě cesty:
Tunel — nic nevystavuješ a je to ta bezpečnější:
ssh -L 25586:127.0.0.1:25586 ty@tvuj-server
Nebo (od 0.1.1) řekni modu, kudy se k němu chodí. Když API posadíš na 0.0.0.0, aby na něj šlo dosáhnout odjinud, samotný odkaz by vyšel jako http://0.0.0.0:25586/…, což se neotevře nikde. Od toho je api.reachable-at:
/keystone set keystone.api.reachable-at 192.168.1.100
Prázdné a poslouchající na skutečné adrese → použije ji. Prázdné a poslouchající na 0.0.0.0 → zeptá se stroje na jeho vlastní adresu. Vyplněné vyhrává, což je to, co potřebuješ za routerem, v tunelu nebo pod jménem, které jsi tomu stroji dal. Nový odkaz se skládá až ve chvíli, kdy si o něj řekneš, takže změna platí hned.
Než API pustíš mimo loopback, přečti si Lokální API. Umí všechno, co umí mod.
Pak klikni na odkaz znovu — na nový, protože platí pět minut a funguje jednou. Když port není 25586, změnil jsi ho, a konzole při startu říká, na kterém poslouchá.
Discord mlčí
#Tři věci, v pořadí, ve kterém se kazí:
- Token bota je prázdný. Je to tajemství, takže editor ukáže, jestli je vyplněný, a nikdy čím.
- Bot nemá Message Content nebo Server Members. Obojí jsou přepínače na aplikaci, kde jsi bota vyrobil, a bez nich se bot připojí a neslyší nic — což vypadá úplně stejně jako být offline.
- ID kanálů patří serveru, na kterém bot není.
Konzole při startu modulu řekne, která z těch tří to je.
Nastavení se neprojevilo
#Nikdy se nic neaplikuje napůl: hodnota, která neodpovídá tomu, co ta věc je, se odmítne dřív, než se zapíše, i s důvodem a polem. Podívej se do konzole na to odmítnutí — třeba že every 6h je rozvrh a samotné 6h není.
Jméno nastavení je celá cesta — bench.share-live, ne share-live. Když se spleteš, konzole vypíše, co existuje nejblíž.
A když se to aplikovalo a chceš to zpátky:
keystone set history
keystone set undo <číslo>
Každá změna je tam i s tím, kdo ji udělal, odkud a jaká byla hodnota předtím.
Server je pomalý a nevíš proč
#/keystone test 20
Změří server prázdný, pak postaví hráče po skupinách a skončí větou, která pojmenuje, co povolilo — procesor, paměť, garbage collector, nebo načítání chunků. To jsou čtyři různé problémy se čtyřmi různými odpověďmi a vědět který je většina té práce. Report k tomu řekne, do kterého modu ten čas šel, do kterého světa, a co na serveru stojí.
Když napíše, že mašina byla přes hratelné už bez lidí, je špatně něco, co hráči nezpůsobili, a hledá se to v konzoli kolem začátku toho běhu.
Asistent říká, že není na co se ptát
#Je vypnutý, dokud nevyplníš assistant.address, assistant.key a assistant.model. Žádný náš klíč neexistuje a nic neteče přes STYGION — namíříš si ho, kam chceš, klidně na model běžící na téže mašině, a pak není co vyplňovat ani jako klíč.
Něco jiného
#Odpověď bývá v té řádce v konzoli, a Keystone má všechny svoje uvozené [Keystone] a částí, která je napsala, takže poznáš, který přepínač to vypíná. Když chceš pohled té mašiny, obrazovka Console v editoru jsou tytéž řádky i s chatem vedle, a /keystone assistant incident ten úsek přečte a řekne, co vypadá špatně.
Vlastní chyby Keystone se dají posílat do nástroje na chyby, který si provozuješ (GlitchTip nebo Sentry), a nemusíš pak hlídat log. Je to vypnuté: jar žádnou adresu nenese a nic neposílá, dokud nenastavíš errors.dsn v keystone.toml (/keystone set errors.dsn <adresa>; prázdné to zase vypne, bez restartu). Posílají se jen chyby, které mají ve stopě kód Keystone: výjimka, její stopa, verze Keystone, loader a verze Minecraftu. Zpráva se předtím vyčistí (cesty, adresy, e-maily, tokeny, cokoliv v uvozovkách a každé jméno hráče, které server zná, se odstraní). Žádné řádky logu, chat, jméno serveru ani hráč; stejná chyba odejde nejvýš jednou za deset minut. errors.environment říká, pod čím se hlášení založí.
Pomohla vám tahle stránka?
Otevře panel zpětné vazby s touhle stránkou v příloze. Přistane do jedné fronty se vším ostatním.