Skip to main content
Návody
NávodyRolesBasics

Role a oprávnění na Discordu: Proč tvůj bot nemůže přidělit tu roli

Hierarchie rolí je nejčastější důvod, proč na Discordu něco nefunguje. Pochop ji jednou a ušetříš si hodiny hledání chyb.

Zveřejněno od AlphaCloud3 min čtení

Existuje situace, na kterou jednou narazí každý majitel serveru: bot má přidělit roli a nepřidělí. Bot má Administrátora. Nastavení je uložené. Přesto se nic neděje.

Příčina je skoro vždy stejná a s oprávněními nemá nic společného.

Dva systémy, ne jeden

Discord rozhoduje ve dvou samostatných krocích, jestli někdo smí něco udělat:

  1. Oprávnění. Smí tahle role vůbec spravovat role?
  2. Pozice. Je tahle role dost vysoko na to, aby se cílové role dotkla?

Většina lidí zná jen první krok. Selhává to na tom druhém.

Pravidlo v jedné větě

Člen, včetně bota, může přidělovat a odebírat jen role, které jsou pod jeho vlastní nejvyšší rolí. A moderovat může jen členy, jejichž nejvyšší role je pod tou jeho.

To platí i s Administrátorem. Administrátor přebíjí oprávnění, ne hierarchii. Bot s Administrátorem, jehož role je na konci seznamu, nemůže v podstatě nic.

Příklad

Tvůj seznam rolí vypadá shora dolů takhle:

Owner
Administrator
Moderator
AlphaCloud          <- the bot's role
Verified
Member

Co bot může:

  • Přidělovat a odebírat Verified a Member
  • Moderovat členy, jejichž nejvyšší role je Verified nebo Member

Co bot nemůže:

  • Přidělit Moderator, protože ta role je nad ním
  • Vyhodit, zabanovat nebo přejmenovat moderátora
  • Sáhnout na administrátora

Pokud chceš, aby bot mohl přidělovat roli moderátora, musíš jeho roli přetáhnout nad Moderator. Ne naopak.

Praktická rada

Dej roli bota přímo pod svou nejvyšší týmovou roli. Takhle:

Owner
Administrator
AlphaCloud          <- here
Moderator
Verified
Member

Bot tak může spravovat všechno pod vedením, aniž by mohl sáhnout na samotné vedení. To je skoro vždy přesně to, co chceš.

Pořadí změníš v Nastavení serveru, Role přetažením.

Tři zvláštní případy, které stejně nebudou fungovat

I s dokonalou hierarchií existují tři věci, které Discord botovi nikdy nedovolí:

Přejmenovat nebo moderovat majitele serveru. Majitel stojí mimo hierarchii. Žádná role ani žádné oprávnění na tom nic nezmění.

Upravovat role na stejné pozici. Dvě role ve stejné výšce na sebe nemůžou sáhnout. Musí to být opravdu nad, ne na úrovni.

Přidělit roli @everyone. Má ji každý automaticky, přidělit se nedá.

Oprávnění kanálu přebíjejí oprávnění serveru

Druhý nejčastější případ: bot podle své role smí posílat zprávy, ale v jednom jediném kanálu to nedělá.

Discord povoluje pro jednotlivé kanály výjimky z oprávnění serveru. Pokud je v kanálu Posílat zprávy výslovně zakázáno pro @everyone nebo pro jednu z rolí bota, vyhrává to, ať říká role na serveru cokoli.

Zkontrolovat to můžeš přímo: nastavení kanálu, Oprávnění, pak nahoře v části Zobrazit oprávnění pro vyber bota. Discord ti pak přesně ukáže, co v tom kanálu smí.

Které oprávnění k čemu

Pokud botovi nechceš dávat plošně Administrátora, tady je realistický seznam:

Úkol Oprávnění
Přidělovat role Spravovat role
Tikety, dočasné kanály Spravovat kanály
Mazat spam Spravovat zprávy
Umlčet Udělit členům časový limit
Odstranit Vyhodit členy, Zabanovat členy
Přesunout do AFK kanálu Přesouvat členy
Prefixy přezdívek Spravovat přezdívky
Vědět, kdo akci spustil Zobrazit protokol auditu

Administrátor je pořád pragmatická volba, pokud používáš hodně funkcí. Ne proto, že by byl bezpečnější, ale protože tě jinak každá nová funkce pošle hledat to jedno chybějící oprávnění. Tak či onak zůstává hierarchie tou důležitější pákou.

Krátká verze pro hledání chyb

Když něco nefunguje, projdi po pořadí tyhle čtyři otázky:

  1. Je role bota nad dotčenou rolí?
  2. Je role bota nad dotčeným členem?
  3. Má bot odpovídající oprávnění na úrovni serveru?
  4. Je to oprávnění v tomhle kanálu výslovně zakázané?

V devíti případech z deseti jde o otázku 1 nebo 2.

Další články