Рівні та досвід
Кожне повідомлення, написане в каналі, дає від 15 до 25 XP, визначених
випадково. Зараховується лише один здобуток за хвилину й на кожного учасника: десять
повідомлень поспіль дадуть не більше, ніж одне. Боти, особисті повідомлення та системні повідомлення
(приєднання, закріплення) не дають нічого.
Перехід із рівня L на наступний коштує 5 × L² + 50 × L + 100 XP. Тож вартість
зростає на кожному щаблі, і зберігається лише загальний XP: рівень виводиться з нього.
Останній стовпець припускає звичайну розмову із середнім здобутком. Він дає порядок
величини. Реальний час залежить від того, наскільки розрідженими є повідомлення, адже лічильник тримає
лише один здобуток за хвилину.
На кожному підвищенні рівня бот відповідає у каналі, де було написано повідомлення.
Оголошення налаштовується з панелі керування: ембед або звичайний текст, заголовок, опис, колір, а також
змінні {level} та {xp} на додачу до звичних. Канал, у який бот не може писати,
нічому не заважає: рівень зараховано, зникає лише оголошення.
Модуль увімкнено за замовчуванням. Вимкнення зупиняє здобутки й оголошення, нічого
не стираючи: таблиця лідерів лишається в базі даних і повертається неушкодженою, щойно модуль знову
увімкнуть. Щоб виправити окремий випадок, /xp додає, віднімає або
задає XP учасника; /rank і
/leaderboard показують результат.
Покарання, історія та нотатки
Кожне покарання, винесене ботом, записується: бан, тимчасовий бан, виганяння, тайм-аут, попередження
і навіть зняття (розбан, скасування попередження). Кожне отримує свій код із дванадцяти символів.
Порядок дій тут не випадковий. Особисте повідомлення йде перед покаранням.
Після бану бот більше не має спільного сервера з людиною й не зміг би їй написати. Запис, своєю чергою,
робиться перед зверненням до Discord, щоб код існував; якщо Discord відмовляє у
дії, запис відкочується, і жодного примарного покарання у справі не лишається.
Тимчасовий бан планує власне зняття. Коли настає строк, бот перевіряє, чи не застосував бан заново
хтось із модераторів: якщо застосував, бот його не знімає. Постійний
/ban, виданий протягом цього періоду, скасовує заплановане зняття.
Нотатки (/note, на одне покарання їх 25) ніколи не показують
учаснику, якого вони стосуються: вони служать розмові між модераторами через місяці, коли ніхто вже
не памʼятає контексту.
Захист на вході
Три незалежні механізми, які поєднуються або використовуються поодинці:
-
Капча: щойно прийшовши, учасник має розвʼязати завдання, щоб отримати свою роль.
За замовчуванням: спроб 3, хвилин 5, виганяння в разі невдачі. Запит
надходить в особисті повідомлення; якщо учасник їх закрив, бот створює тимчасовий
канал підтвердження в указаній вами категорії, видимий лише йому, який потім видаляється.
-
Підтвердження через сайт: учасник натискає кнопку, завершує на
сайті й після повернення знаходить свою роль. Бот тут нічого не видає сам: особу перевіряє в Discord
сайт, і саме він потім призначає роль.
-
Захист від рейдів: він цілиться не в окрему людину, а в потік. Коли за
10 секунд приєднань стає більше, ніж 8 (значення за замовчуванням), він
сповіщає, відправляє в карантин або виганяє. Фільтр за віком облікового запису пропускає завсідників,
що потрапили у хвилю.
Спільним для всіх трьох є роль карантину: її накладають одразу після приходу, вона
обмежує те, що новачок бачить і може робити, і знімається, щойно підтвердження пройдено. Доки
вона на місці, контроль лишається за вами, і ніщо не заважає пропустити когось вручну.
Тикети
Панель, надіслана в канал, типів запиту щонайбільше 25 (межа спадного меню
Discord), і для кожного: своє емодзі, свій колір, своє привітальне повідомлення, своя форма відкриття та
команда, яка має до нього доступ. Відкриття створює приватний канал між тим, хто звернувся, і цією
командою. Після закриття розмова архівується як HTML в архівному каналі, і листування лишається
читабельним навіть тоді, коли канал зникне.
Музика та ролі діджеїв
Відтворення спирається на власну аудіоінфраструктуру. Якщо вона недоступна, музичні
команди про це кажуть, а решта бота працює далі.
Команди, які керують поточним відтворенням (/pause, /resume,
/stop, /loop, /volume), доступні лише діджеям. Діджей це: власник
сервера, адміністратор, учасник із дозволом « Керувати сервером » або учасник із роллю, доданою через
/dj add. Доки жодної ролі діджея не налаштовано, ці команди
відповідають лише цим трьом профілям. Ролі модерації є окремим списком:
вони не дають статусу діджея.
Команди, які лише читають (/queue, /nowplaying, /lyrics), і
додавання треків (/play) лишаються відкритими для всіх.
Розіграші
Прийнятна тривалість: від 10 секунд до 28 днів, записана вільно
(30m, 1h30m, 2d). Водночас активних розіграшів щонайбільше
20, а переможців на один розіграш щонайбільше 20.
Розіграш завжди проводить бот, ніколи не сайт: лише він може в момент розіграшу перевірити,
що переможці досі на сервері й мають роль, потрібну для участі. Якщо ніхто не
озветься, /giveaway reroll проводить його знову.
Журнали
Типів подій 21, поділених на категорії (Повідомлення, Учасники, Модерація, Голосові, Сервер), яких 5, і кожну
подію можна вмикати окремо. Кожна категорія може вказувати на власний канал: модерація з одного боку,
повідомлення з іншого.
Вміст повідомлень ніколи не зберігається в базі даних. Коли повідомлення видаляють, бот
надсилає ембед у визначений вами канал, і цим усе й обмежується. Дія, виконана самим
ботом (бан через /ban), потрапляє в журнал лише один раз, через журнал модерації, який
називає модератора.
Резервні копії
Резервна копія фотографує структуру сервера (ролі, канали, дозволи)
і повертає приватний код, надісланий в особисті повідомлення. На одного власника зберігається копій
3. Вона не містить жодного повідомлення: це не історія розмов. Код відновлює цю
структуру на поточному сервері, тож ним можна й клонувати сервер, імпортувавши його деінде.
Тимчасові голосові канали
Приєднання до каналу-тригера створює канал, власником якого стає учасник: він може його перейменувати,
обмежити доступ до нього чи задати межу розміру. Канал зникає, щойно спорожніє, і прибирати за ним
не треба.