Discord
Chat oběma směry, účty ověřené kódem ze hry, role a bany držené v souladu a konzole zrcadlená tam, kde na ni vidíš.
Stránka je starší než Keystone 0.2.8, vydaný 18. října 2026. Od té doby se něco mohlo změnit.
Na téhle stránce 8 částí
Discord
Všechno tady je discord.toml, nebo obrazovka Settings v panelu.
Jak to rozmluvit
#- Udělej si bota na
discord.com/developersa dej mu intenty Message Content a Server Members — bez prvního vidí bot prázdné zprávy a do hry se nevrátí nic. /keystone set discord.token <token>a/keystone set discord.server <id serveru>./keystone set discord.chat-channel <id kanálu>— místnost, se kterou hra mluví.- Pozvi ho s právem číst, psát a spravovat webhooky v tom kanálu.
Token je tajemství a Keystone maskuje příkaz, kterým se nastavuje, z logů i z
konzole. Pořád se ale zapíše do discord.toml, takže ten soubor není něco, co
se publikuje.
Chat
#| Nastavení | Co dělá |
|---|---|
game-to-discord |
Co se řekne ve hře, objeví se na Discordu. |
discord-to-game |
A obráceně. |
speak-as-players |
Každý hráč mluví pod svým jménem a obličejem, přes webhook, místo aby všechno chodilo jako bot. |
avatar |
Odkud se bere obličej. Výchozí je veřejný renderer hlav podle jména. |
joins-and-leaves |
I příchody a odchody. |
topic / topic-every |
Popisek kanálu nese, kdo je na serveru, a obnovuje se na časovač. |
queue |
Kolik zpráv podržet, když je Discord nedostupný, aby výpadek nesnědl konverzaci. |
Se zapnutými kanály chatu (0.2.1) může mít každý herní kanál vlastní Discord kanál (discord=<id kanálu>, nebo discord=main pro chat-channel): řádka jde jen do Discord kanálu svého kanálu a zpráva z Discordu jen do svého kanálu, jen hráčům, kteří ho smějí číst. Kanál bez Discordu hru neopustí. Bota pozvi do každého uvedeného kanálu s právem číst, psát a spravovat webhooky.
Propojení účtu
#Ve hře:
/discord link # dá ti kód
/discord status # jestli jsi propojený a s kým
/discord unlink # zpátky
Na Discordu pak /link <kód> — jako slash příkaz, takže se ten kód nikdy
nestane zprávou, kterou by bylo potřeba mazat, a odpověď vidíš jen ty. Žádná
webovka, žádný e-mail.
Nebo tlačítko v místnosti, do které nikdo nesmí psát (0.2.1). /discord panel <id kanálu> (keystone.discord.panel, personál) pošle do discordového kanálu
panel s tlačítkem Link account. Tlačítko otevře formulář, který vidí jen ten,
kdo na něj klikl; kód, který do něj napíše, se utratí přesně jako u /link —
stejné kontroly, stejná odpověď, stejný limit účtů. Ten kanál nastav všem jen ke
čtení: Discord bere slash příkazy spolu s právem Send Messages a kód vložený jako
obyčejná zpráva může kdokoli přečíst, dokud ho někdo nesmaže. Id tlačítka je
pevné (keystone:link), takže funguje i panel, který pod stejným botem pošle
jiný nástroj. /link zůstává pro místnosti, kam lidé psát smějí.
link.required-to-joinz toho udělá bránu: nepropojenému hráči se ukáže zprávascreens.not-linkeds jeho kódem, pozvánkou a tím, jak dlouho kód platí, a dovnitř ho to nepustí, dokud to neudělá.link.accounts-per-userje, kolik herních účtů smí mít jeden Discord účet.link.rename-nicknameho na Discordu přejmenuje na jméno, pod kterým hraje.link.code-lastsje, jak dlouho má smysl kód psát.link.inviteje pozvánka, kterou ta obrazovka ukáže.
A k čemu je to dobré i mimo hru: propojení je na serveru, který není v online
režimu, jediný důkaz totožnosti, který existuje — vzniklo zevnitř hry pod tím
jménem a potvrdil ho účet, který hra nerozdává. Proto se na něj dá ptát přes
API: GET /v1/discord/links?discord=<id> se scopem players.read řekne, které
herní účty ten člověk drží. Tak se e-shop dozví, komu koupenou věc doručit,
místo aby věřil jménu napsanému do formuláře.
Role a bany v souladu
#roles.followspáruje discordovou roli se skupinou v Keystone, oběma směry: dáš někomu roli a dostane skupinu.ban.game-to-discordaban.discord-to-gamepřenesou ban. Vypnuté ve výchozím stavu, protože je to rozhodnutí, ne pohodlí — aban.who-mayříká, čí bany na Discordu smí dosáhnout do hry. Viz moderace.
Konzole tam, kde na ni vidíš
#console.channel zrcadlí log serveru do discordové místnosti, po dávkách každých
console.every, aby se vytížený server dal číst a nebyl to proud vody.
console.levels vybere, co má cenu zrcadlit, console.ignoring zahodí řádky,
kterých máš plné zuby. console.most-lines omezí jednu dávku.
Kdo vidí do té místnosti, čte log tvého serveru. Dej ji někam, kam vidí jen tvůj tým.
Upozornění
#alerts.channel je místo, kde Keystone řekne, že je něco špatně — TPS pod
operations.alerts.tps-below, paměť nad operations.alerts.memory-above-percent,
drženo po must-last a pak ticho po quiet-for, aby se z jedné špatné minuty
nestalo čtyřicet zpráv. alerts.ping-role je, kdo se má vzbudit.
alerts.runs-channel je, kam padají hotové zátěžové testy.
Stav serveru. status-channel řekne, že server je nahoře, jde dolů, nebo se
za tolik minut restartuje (jednou za restart, ne při každém varování). Výchozí
"chat" je kanál, kde jsou hráči (kanál chat mostu); id kanálu pošle stav
jinam, prázdné nikam. Věty jsou jazykové klíče discord.news.up, .down a
.restart, které si server může přepsat. news-channel se už nečte — kanál
novinek je na novinky.
Seznam kanálů a rolí se čte nejvýš jednou za půl minuty (discord.names-every),
ať se jednou změnou deseti kanálů nespotřebuje desetiminutový limit Discordu,
sdílený s ostatním, co ten bot dělá.
Otázka „jsi to ty?"
#Když je zapnuté accounts.ask-on-discord, dostane propojený hráč při připojení
soukromou zprávu s tím, kdo se připojuje a odkud, a dvěma tlačítky. Podrobně na
stránce Účty.
Tickety na Discordu
#tickets.category a tickets.roles dají soukromé kanály ticketů do kategorie a pustí k nim tvoje role. Zbytek je na stránce o ticketech.
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.