# Účty na offline serveru

> Heslo, otázka na Discordu, nebo obojí — tři způsoby, jak na serveru bez Mojangu dokázat, že účet je tvůj.

Source: https://stygion.eu/cs/docs/keystone/accounts
Updated: 2026-10-09

Server v offline režimu se Mojangu neptá na nic, takže **kdo napíše jméno, ten
jméno dostane** — včetně tvého. Tenhle modul to zavírá. Na serveru v online
režimu ho nezapínej: Mojang tu práci už udělal a ptát se podruhé je jen otrava.

Všechno je v `accounts.toml` nebo na obrazovce Settings v editoru. Vypnuté,
dokud neřekneš jinak.

## Držený, ne přesunutý

Kdo se ještě neprokázal, **zůstane stát tam, kde se připojil**: nemůže se mu nic
stát a nic, co řekne, se k nikomu nedostane. Není lobby svět, který by se musel
udržovat, a není teleport, jehož místo by se dalo po pádu serveru zapomenout.

```
accounts.require = true
```

Tohle je ten hlavní přepínač: bez něj se nikdo neprokazuje a modul jen leží.

## Tři způsoby, jak se prokázat

**Heslo.**

```
/register <heslo> <heslo znovu>
/login <heslo>
/password <staré> <nové>
```

`accounts.least-length` je nejkratší heslo, které server bere. Délka je to
jediné pravidlo, které za něco stojí — velké písmeno a číslovka lidem vyrobí
`Heslo1` a nic navíc.

**Otázka na Discordu** (`accounts.ask-on-discord`, zapnuté). Kdo má propojený
[Discord](/docs/keystone/discord), dostane do soukromé zprávy dotaz: někdo se
připojuje jako ty, odkud, dvě tlačítka. Žádné heslo si pamatovat nemusí.

**Ochrana koupených jmen** (`accounts.protect-bought-names`, vypnuté). Jméno,
které patří skutečnému Minecraft účtu, se tady nedá vzít někomu, kdo ho nekoupil
— hráč dostane obrazovku `screens.name-not-yours`. `keystone accounts allow
<jméno>` jedno takové pustí, když víš, že je to v pořádku.

## Čas a pokusy

| Nastavení | Co dělá |
|---|---|
| `accounts.remember-for` | Jak dlouho se ten samý stroj pustí bez ptaní — heslo i potvrzení na Discordu stejně. Výchozí `1d`, nula to vypne. |
| `accounts.must-prove-within` | Jak dlouho má někdo na to se prokázat, než ho to odpojí. Výchozí `2m`. |
| `accounts.most-tries` | Kolik špatných hesel, než ho to odpojí (výchozí 5). Připojit se může znovu, ale po tolika špatných na jedno jméno z jednoho místa každý další pokus čeká dvakrát déle než předchozí (od 30 vteřin, nejvýš hodinu). Je to proti hádání, ne trest. |
| `accounts.hold-name-for` | Jak dlouho je jméno zavřené potom, co jeho majitel na Discordu odpoví **Ne, to nejsem já**. Výchozí `15m`. |

**„Ten samý stroj" není IP adresa.** Do databáze se ukládá *místo* — jednosměrný
otisk pod klíčem, který si tvůj server vyrobil sám. Stejný počítač se pozná jako
stejný počítač a zpátky na adresu to nepřevede nikdo, nás nevyjímaje.

Potvrzení na Discordu se pamatuje stejně jako heslo: kdo ho jednou potvrdil z
tohohle místa, nedostane otázku při každém připojení. Zapamatování skončí, když
se odebere nebo přesune propojení s Discordem, při banu, při změně hesla, po
`keystone accounts forget` a po „to nejsem já". Místo, ze kterého se prokázaly
dva různé účty (společný byt, všichni za proxy), se nepamatuje nikdy.

**Dokud se někdo neprokáže, nedrží nic.** Na offline serveru je jméno všechno,
čím operátor je, takže držený hráč nemá žádná operátorská práva, žádnou skupinu
ani oprávnění a hra zahodí každý jeho paket kromě těch, které drží spojení při
životě a nesou `/login`: žádný chat, žádné bloky, žádné inventáře.

Hádání hesel stojí čas a **nemůže zamknout majitele**: jméno má rozpočet deset
špatných hesel za hodinu z míst, ze kterých se nikdy nepoužilo, a pak ta místa na
hodinu odpočívají; obvyklé místo majitele se jím neřídí a otázka na Discordu se
nezdržuje nikdy. Místo, které hádá víc jmen, se zpomalí, nezamkne. Někdo, kdo se
opakovaně připojuje pod tvým jménem, tě nepinguje pokaždé: nejvýš jedna otázka za
minutu a pět za hodinu z jednoho místa.

## Správa

```
keystone accounts                      # kolik lidí má heslo, kdo čeká, kdo byl odmítnut
keystone accounts forget <hráč>        # smaže heslo, ať si nastaví nové
keystone accounts allow <jméno>        # pustí jedno koupené jméno, jednou
keystone accounts attempts <jméno>     # kdo byl u těch dveří odmítnutý a proč
```

Oprávnění `keystone.accounts.admin`.

**`forget` je jediná obnova hesla, která existuje, a je to schválně rozhodnutí
člověka.** Na serveru bez e-mailových adres vypadá „zapomněl jsem heslo" a
„vydávám se za něj" úplně stejně.

## Obrazovky

`screens.name-held` a `screens.name-not-yours` v `operations.toml` — co ten
člověk uvidí, když je jméno zavřené nebo patří někomu, kdo si ho koupil. Obojí
dosazuje `{player}`, `{left}` a `{appeal}`.
