# Klientská část

> Týž jar v módech hráče: ultimine s obrysem, „píše…“ nad chatem a resource pack bez přenačítání — a přesně co si klient se serverem řekne. Od 0.2.5.

Source: https://stygion.eu/cs/docs/keystone/client-half
Updated: 2026-10-11

Keystone je jeden jar pro server i hráče. V `mods/` hráče se při připojení **pozdraví** se serverem, na kterém Keystone běží, a ten mu pak nabídne tři věci. Hráč bez něj hraje úplně stejně jako dřív, nikdo není odmítnut a server bez Keystone od klienta nedostane nic.

## Co umí

- **[Ultimine](/docs/keystone/ultimine)** s klávesou a obrysem toho, co kopnutí vezme.
- **„Anna píše…“** nad řádkem chatu mezi hráči, kteří oba mají klientskou část (`chat.typing.enabled`, zapnuto). Neviditelný hráč se nikdy neukáže; s kanály chatu to vidí jen ten, komu by zpráva přišla. Přes most na Discord oběma směry: kdo píše v propojené místnosti, ukáže se ve hře jako „Dora (Discord) píše…“ (`typing.from-discord`), a bot na Discordu „píše“, když píše někdo ve hře (`typing.to-discord`, nejvýš jednou za devět sekund na místnost).
- **Resource pack bez přenačítání:** má-li hráč serverový pack zapnutý (stejný SHA-1 jako `resource-pack-sha1` v `server.properties`), server ho neposílá a hra nepřenačítá textury (`resourcepack.skip-when-client-has`, zapnuto). Launcher, který pack předem vloží do instance, tak zkrátí připojení.

## Co si klient a server řeknou

Nic dalšího se neposílá a nic se nikam mimo server neodesílá.

| Kdo | Co | Kdy |
|---|---|---|
| server → klient | pozdrav: verze protokolu a co server zapnul | při připojení (fáze konfigurace) |
| klient → server | verze klientské části a **SHA-1 zapnutých resource packů** (jen soubory `.zip` ze složky resourcepacks, ne jejich jména ani obsah) | odpověď na pozdrav, jen v tomtéž spojení |
| klient → server | klávesa ultimine: drží / nedrží | při změně |
| server → klient | obrys žíly (seznam bloků) | jen při držené klávese |
| klient → server | jeden bit „píšu / nepíšu“ — nikdy text, nikdy u příkazu | při psaní |
| server → klient | řádek „kdo píše“ | při změně |

Server, který klientskou část má, ji vidí v `GET /v1/players` (`client`) a v editoru na obrazovce Hráči. Všechno, co se klient od serveru dozví, **končí s tím spojením**: po odpojení nebo přechodu na jiný server se nic nepošle, dokud nový server sám nepozdraví.

## Jak to vypnout

- Majitel serveru: modul `ultimine` (výchozí vypnuto), `chat.typing.enabled`, `resourcepack.skip-when-client-has`, `discord.typing.from-discord` a `discord.typing.to-discord`.
- Hráč: jar z `mods/` odstraní; hra i server fungují dál.
