Ну, и тихие и запреты фактически устанавливаются через / mode ( /mode +q
и /mode +b
соответственно). «Предоставление» кому-либо флага + b через ChanServ просто говорит ему установить режим + b всякий раз, когда забаненный человек возвращается (а также выбивая его из канала).
Основное различие между использованием /mode +b
и флагами ChanServ заключается в том, что последние хранятся постоянно (см. Полное объяснение ниже).
В качестве дополнительной функции ChanServ позволяет вам ставить заметки и время истечения срока действия запретов. Хотя это не доступно через flags
, но вы можете получить доступ к этой функции через /msg chanserv akick
. Операторы каналов часто находят полезным узнать, почему кого-то забанили и на какой срок - без необходимости хранить общий Google-документ для этого.
Предыстория: большинство сетей IRC не имеют какого-либо постоянного хранилища. У них нет пользовательских учетных записей. Все каналы являются временными, их режимы и списки банов хранятся в памяти только до тех пор, пока на канале есть люди. Если вы получаете оп-статус, он действует только в то время, когда вы находитесь в канале - если вы уходите или отключаетесь, кому-то понадобится снова / оп. Если сервер перезагружается, он повторно синхронизируется с нуля. Если вся сеть перезагружается, все состояние теряется. (Как это случилось с EFnet в конце 2012 года.)
(Есть исключения, но это обычный случай.)
Служебные боты (ChanServ) предоставляют это хранилище в совершенно отдельной программе, действуя очень похоже на традиционного «бота» или просто скриптового клиента. Все флаги, которые вы устанавливаете в ChanServ, на самом деле не влияют на сеть напрямую - они просто говорят ChanServ установить некоторые / режимы от вашего имени. (Если вы оператор канала, вы, конечно, можете установить эти / режимы самостоятельно, они будут только временными.)
Поэтому, когда у вас есть флаги + o или + F на freenode, это не меняет ваш прямой доступ к каналу; это дает вам косвенный доступ через ChanServ. Флаг + o - это ACL, который позволяет вам запросить ChanServ для /mode +o
себя. Флаг + F - это ACL, который позволяет передавать флаги / ACL другим.
Почему у ChanServ нет флага + q, чтобы отключить звук пользователей? Ну, это может, но никто еще не реализовал это.
Одним из аргументов является то, что приглушения часто носят временный характер и не нуждаются в хранении в ChanServ, тогда как полные запреты часто являются постоянными и лучше используют постоянное хранилище.
Другая причина заключается в том, что сервисное программное обеспечение написано для работы с несколькими различными типами IRC-серверов и манипулирования всеми их пользовательскими расширениями. Только полные запреты являются стандартной частью IRC - хотя у freenode есть +q
режимы отключения звука (тишины), это нестандартное дополнение.
Другие IRC-серверы имеют разные расширения. Например, гораздо более распространенное значение +q
- это статус «владелец канала», который означает не владельца стиля ChanServ, а обычный доступ к chanop с некоторыми бонусами. Вы можете увидеть это на Foonetic или Rizon; вместо просто "оп / голос /поденщикнормальный "у вас есть" владелец / администратор / оп / halfop / голос / нормальный ". (Приглушенные / тихие, конечно, должны использовать другую букву.)
Таким образом, основная причина, по которой ChanServ в freenode не имеет +q
флага для отключения звука, состоит в том, что он уже использует тот же флаг для реализации уровня «владельца» в этих других типах сети.
(Было много случаев, когда сеть переключала свое базовое серверное программное обеспечение, но сохраняла одно и то же сервисное программное обеспечение и базу данных учетных записей. Когда это происходит, вам, безусловно, не нужно, чтобы службы конвертировали все предыдущие записи "+ q (владелец канала)" в Записи "+ q (без звука)" ...)