"ЦНС сервера" охраняет саму себя, все важные общественные техинческие помещения и частные охранные системы игроков на основе командных блоков и переменных.
Принцип работы охранных систем на нашем сервере основывается на том, что нарушителю присваивается определённый код переменной alarmCode, который уникален для каждого помещения и частной территории.
Во всех командах исключаются админы с помощью добавления условия "score_Admins=0".
Например, если проникнуть в "ЦНС сервера", то сработает командный блок, охраняющий помещение, в котором находится сама охранная система, охраняющая саму себя:
/scoreboard players set @a[-31,1,-27,dx=45,dy=7,dz=17,score_Admins=0] alarmCode 1
Важно отметить, что прямоугольные параллепипеды "-31,1,-27,dx=45,dy=7,dz=17" (вместо обычного сферического радиуса или при использовании одновременно с ним) указываются в строго определённом направлении, зависящем от знака перед конкретным значением дистанции!
После того, как игрок попал в запретное помещение или активировал ловушку на чужой территории и ему присвоилось значение перменной alarmCode, его начинает обрабатывать подсистема задержания нарушителей.
Для начала все новички-нарушители переводятся в режим "Выживание":
/gamemode 0 @a[m=2,score_alarmCode_min=1]
Затем все игроки-нарушители вне команды "prisoners" и не админы перемещаются в команду зеков (возможно, нужно перемещать только игроков в режиме "Выживание", но пока так):
/scoreboard teams join prisoners @a[team=!prisoners,score_alarmCode_min=1,score_Admins=0]
Далее зекам сразу и постоянно чистится инвентарь, меняется точка спауна и игровой режим, накладывается эффект замедления - затем нарушитель перемещается в тюрьму и ему постоянно выдаётся информация о дальнейших необходимых действиях:
/clear @a[team=prisoners]/gamemode 0 @a[team=prisoners]/spawnpoint @a[team=prisoners] 0 3 0/effect @a[team=prisoners] minecraft:slowness 999999 4/tp @a[0,3,0,rm=10,team=prisoners] 0 3 0/tellraw @a[0,3,0,10] {"text":"","extra":[{"text":"Внимание!! Вы стали жертвой нарушения правил сервера! Чтобы выйти из тюрьмы, отпишитесь в теме ","color":"green"},{"text":"по этой ссылке!","color":"gold","hoverEvent":{"action":"show_text","value":"Кликни на оранжевый текст"},"clickEvent":{"action":"open_url","value":"http://forum[paste][/paste]bbyaworld[paste][/paste]com/index[paste][/paste]php?/topic/8-tiurma-№3/"}}]}
Заключённые находятся в тюрьме до тех пор, пока не признают свою вину и не раскаются в содеянном или наоборот - докажут свою невиновность.
Всё это обсуждается в специальной теме, там же описаны дополнительные функции - такие, как модуль "Анти-бунт".
Процесс выхода игрока на свободу автоматизирован.
Для того, чтобы выпустить игрока из тюрьмы, оператор должен любым способ задать значение перменной "alarmCode = -1" - далее автоматика всё сделает сама (сменит команду, изменит точку спауна, снимет эффекты, телепортнёт и сбросит код охранной системы):
/scoreboard teams leave @a[0,3,0,10,score_alarmCode=-1]/spawnpoint @a[0,3,0,10,team=!prisoners] -5 66 -31/effect @a[0,3,0,10,team=!prisoners] clear/tp @a[0,3,0,10,team=!prisoners] -5 66 -31/scoreboard players set @a[-5,66,-31,20,score_alarmCode=-1] alarmCode 0
С этого момента игрок полностью свободен, находится на спауне, к нему нет никаких претензий и уже невозможно будет узнать код нарушения, которое он совершил.
К сожалению, восстанавливать отображение гильдий нужно ручками, т.к. иначе это будет слишком громоздкое дополнение в условиях нашего сервера: у нас за каждый уровень в каждой гильдии отвечает своя команда и их десятки - это означает, что для автоматизации возврата отображения уровня гильдии, необходимо поставить на каждый возможный вариант по командному блоку, который будет проверять соответствующую переменную и после этого перекидывать игрока в соответствующую команду.
P.S.: чтобы посадить нарушителя в тюрьму ручками или выпустить его с помощью автоматизированной системы, нарушителю не обязательно находиться в игре, т.к. ССИС позволяет задавать значения переменных и менять команды для игроков в оффлайне...
Запрещённые предметы и дополнительные ограничения.
На нашем сервере запрещено носить некоторые предметы (читай - запрещено использование).
Для обеспечения дополнительной безопасности стратегических объектов всем игрокам запрещено переносить Жемчуг Края в зоне спауна:
/clear @a[x=140,y=10,z=-200,r=300,score_Admins=0] minecraft:ender_pearl
Кроме того, используется эдакая заглушка, которая позволяет запретить всеми игрокам, кроме админов, скрывать свой ник на Dynmap:
/dynmap show @a[score_Admins=0]