Skip to main content
Посібники

Ролі та дозволи Discord: чому твій бот не може видати цю роль

Ієрархія ролей це найпоширеніша причина, чому щось у Discord не працює. Зрозумій її один раз, і ти заощадиш собі години пошуку помилок.

Опубліковано автор AlphaCloud3 хв читання

Є ситуація, з якою рано чи пізно стикається кожен власник сервера: бот має видати роль і не видає. Бот має «Адміністратор». Налаштування збережено. І все одно нічого не відбувається.

Причина майже завжди та сама, і вона не має нічого спільного з дозволами.

Дві системи, а не одна

Discord вирішує у два окремі кроки, чи може хтось щось зробити:

  1. Дозвіл. Чи може ця роль узагалі керувати ролями?
  2. Позиція. Чи стоїть ця роль достатньо високо, щоб торкатися цільової ролі?

Більшість знає лише перший крок. Ламається все на другому.

Правило в одному реченні

Учасник, зокрема й бот, може видавати й забирати лише ті ролі, які стоять нижче за його власну найвищу роль. І він може модерувати лише тих учасників, чия найвища роль стоїть нижче за його власну.

Це діє навіть з «Адміністратором». «Адміністратор» перекриває дозволи, а не ієрархію. Бот з «Адміністратором», чия роль стоїть унизу списку, по суті нічого не може.

Приклад

Твій список ролей згори донизу виглядає так:

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

Що бот може:

  • Видавати й забирати Verified і Member
  • Модерувати учасників, чия найвища роль Verified або Member

Чого бот не може:

  • Видати Moderator, бо ця роль стоїть вище за нього
  • Вигнати, забанити чи перейменувати модератора
  • Торкнутися адміністратора

Якщо хочеш, щоб бот міг видавати роль модератора, тобі треба перетягнути його роль вище за Moderator. Не навпаки.

Практична порада

Постав роль бота одразу під свою найвищу командну роль. Ось так:

Owner
Administrator
AlphaCloud          <- here
Moderator
Verified
Member

Так бот може керувати всім, що нижче за керівництво, не маючи змоги торкнутися самого керівництва. Майже завжди це саме те, чого ти хочеш.

Порядок змінюється в Налаштуваннях сервера, Ролі перетягуванням.

Три особливі випадки, які все одно не працюватимуть

Навіть з ідеальною ієрархією є три речі, яких Discord ніколи не дозволяє боту:

Перейменовувати чи модерувати власника сервера. Власник стоїть поза ієрархією. Жодна роль і жоден дозвіл цього не змінюють.

Редагувати ролі на тій самій позиції. Дві ролі на однаковій висоті не можуть торкатися одна одної. Має бути справді вище, а не на одному рівні.

Видавати роль @everyone. Її мають усі автоматично, її неможливо призначити.

Дозволи каналу переважають дозволи сервера

Другий найпоширеніший випадок: згідно з роллю бот може надсилати повідомлення, але не робить цього саме в одному каналі.

Discord дозволяє винятки з дозволів сервера для окремих каналів. Якщо в каналі Надсилати повідомлення явно заборонено для @everyone або для однієї з ролей бота, це переважає, хоч би що казала роль на сервері.

Перевірити це можна напряму: налаштування каналу, Дозволи, потім угорі в Переглянути дозволи для вибери бота. Тоді Discord показує тобі точно, що він може в цьому каналі.

Який дозвіл для чого

Якщо не хочеш давати боту загальний «Адміністратор», ось реалістичний список:

Завдання Дозвіл
Видавати ролі Керувати ролями
Тікети, тимчасові канали Керувати каналами
Видаляти спам Керувати повідомленнями
Заглушити Тайм-аут для учасників
Прибрати Виганяти учасників, Банити учасників
Перемістити в AFK-канал Переміщувати учасників
Префікси для нікнеймів Керувати нікнеймами
Знати, хто запустив дію Переглядати журнал аудиту

«Адміністратор» усе ще прагматичний вибір, якщо ти користуєшся багатьма функціями. Не тому, що це безпечніше, а тому, що інакше кожна нова функція змушує тебе шукати один відсутній дозвіл. Так чи інакше, ієрархія залишається важливішим важелем.

Коротка версія для пошуку помилок

Коли щось не працює, пройди ці чотири запитання по черзі:

  1. Чи стоїть роль бота вище за відповідну роль?
  2. Чи стоїть роль бота вище за відповідного учасника?
  3. Чи має бот відповідний дозвіл на рівні сервера?
  4. Чи заборонено цей дозвіл явно в цьому каналі?

У дев'яти випадках із десяти це запитання 1 або 2.

Інші статті