Войти или зарегистрироваться
  • Вы находитесь в сообществе Rubukkit. Мы - администраторы серверов Minecraft, разрабатываем собственные плагины и переводим на различные языки плагины наших коллег из других стран.

Плагин [ADMIN] RulesBan v2.0 - наказание игроков по правилам. [1.7.2- 1.9.4]

CoolBoy

Активный участник
Пользователь
Баллы
96
Имя в Minecraft
Xezard
RulesBan
​
Версия плагина: 2.0
Протестирован на версиях: [1.7.2 - 1.9.4]
(Может работать и на более старых версиях)
Зависимости: Essentials
(Может работать и с другими менеджерами "банов")

О плагине:
Решил написать небольшую "обёртку" для Essentials в виде более удобного менеджера наказаний для игроков.
Включает в себя набор правил, по которым можно "наказать" игрока, в случае, если он их нарушил.

Особенности:
  • Даже не знаю, плюс это, или минус. Плагин работает без каких-либо баз данных, не сохраняет какую-либо информацию о банах/мутах. Для этой цели используется Essentials.
  • Набор правил может быть дополнен в любой момент.
  • Легко настраиваемый.
Команды:
  • /rb - вывод "help" странички.
  • /rb <правило> [игрок] - применить наказание к игроку, который нарушил правило.
  • /rb reload - перезагрузка конфигурации.
  • /rb unmute [игрок] - размутить игрока. (Работает аналогично команде "/mute" в Essentials)
  • /rb unban [игрок] - разбанить игрока.
  • /rb unbanip [игрок / IP-адрес] - разбанить IP-адрес.

Permissions:
rulesban.action.kick -
позволяет использовать правила, в которых, в качестве наказания, выступает кик нарушителя.
rulesban.action.mute - позволяет использовать правила, в которых, в качестве наказания, выступает мут нарушителя.
rulesban.action.ban - позволяет использовать правила, в которых, в качестве наказания, выступает бан нарушителя.
rulesban.action.tempban - позволяет использовать правила, в которых, в качестве наказания, выступает временный бан нарушителя.
rulesban.action.banip - позволяет использовать правила, в которых, в качестве наказания, выступает бан айпи нарушителя.
rulesban.command.unmute - позволяет использовать команду "/rb unmute".
rulesban.command.unban - позволяет использовать команду "/rb unban".
rulesban.command.unbanip - позволяет использовать команду "/rb unbanip".

Конфигурация:
YAML:
#|-----------------------------------------------------|
#| Плагин написан @CoolBoy 25.04.2016                  |
#| Мой старый никнейм - Cross Faer (Cross Fatal Error) |
#| Часть кода принадлежит Dereku (правки)              |
#| Skype: thecoolboy2070                               |
#| VK: http://vk.com/thecoolboy2070                    |
#| VK[x2]: http://vk.com/cross_fatal_error             |
#|-----------------------------------------------------|

# Включение сообщения о бане по всему серверу.
Broadcast: true
# Правила.
# Перечень правил. Может быть дополнено.
# Действие. Может быть - kick/mute/ban/tempban/banip. При kick/banip строчку time указывать не нужно.
# Время. Обычно указывается число и разряд. y - год, m - месяц, d - день, h - час, m - минута, s - секунда.
# Причина. Можно использовать цетовые коды.
# Сообщение, которое будет выведено остальным игрокам, после применения наказания. Плейсхолдеры: %player% - игрок, который получил наказание, %bannableby% - игрок, который выдал наказание.
Rules:
  swear:
    action: "kick"
    reason: "&cНарушение правила 1.1."
    broadcast: "&cИгрок &a%player% &cнарушил правило &91.1 &cи получил наказание от &6%bannableby%."
  caps:
    action: "mute"
    time: 60s
    reason: "&cНарушение правила 1.2"
    broadcast: "&cИгрок &a%player% &cнарушил правило &91.2 &cи получил наказание от &6%bannableby%."
  grief:
    action: "ban"
    reason: "&cНарушение правила 1.3"
    broadcast: "&cИгрок &a%player% &cнарушил правило &91.3 &cи получил наказание от &6%bannableby%."
  relog:
    action: "tempban"
    time: 300d
    reason: "&cНарушение правила 1.4"
    broadcast: "&cИгрок &a%player% &cнарушил правило &91.4 &cи получил наказание от &6%bannableby%."
  cheats:
    action: "banip"
    reason: "&cНарушение правила 1.5"
    broadcast: "&cИгрок &a%player% &cнарушил правило &91.5 &cи получил наказание от &6%bannableby%."
# Маски команд для выполнения команд unmute, unban, unbanip.
# Права создаются из части названия маски. Тоесть: разрешение для маски unban - rulesban.command.unban, для unmute - rulesban.command.unmute. Дальше - по аналогии.
CommandsMask:
    unban: "unban %player%"
    unbanip: "unbanip %player%"
    unmute: "mute %player%"
# Сообщения. Можно использовать цветовые коды.
Messages:
  No-permissions: "&cУ вас недостаточно прав."
  Plugin-reloaded: "&aКонфигурация плагина успешно перезагружена."
  Target-offline: "&cИгрок, к которому вы хотели применить правило - оффлайн."
  Unknown-argument: "&cНеизвестный аргумент. Используйте /rb help."

Скачать: [Ссылка]

To-Do:
  • Добавить функцию jail.

Лог изменений:
Версия 2.0:
  • Переписан весь код. Воспользовался советами Ninja и Dereku.
  • Добавлено boolean значение - Broadcast. Если "true" - после применения наказания, весь сервер оповестит об этом.
  • Добавлены маски для команд "unban", "unbanip", "unmute".
Версия 1.1:
  • Поправил код, изабвился от "статики" там, где это было необходимо.
Версия 1.0:
  • Релиз.
 
Последнее редактирование:
пермы ещё напиши, и по мойму ты забыл /rb mute
 
Точно такой не так давно себе написал, но со своими плюшками.
 
Точно такой не так давно себе написал, но со своими плюшками.
Там писать то нечего =)
Просто так немного удобнее, как по мне, выдавать наказания игрокам. К тому же, им (плагином) также можно неплохо ограничить хелперов.
 
У меня все это скорее дополнение к плюшкам. Так как их самих больше. Глянул код , порадовался. Мой лучше.:lol:
 
C хорошими людьми поделюсь. В паблик же не выкладываю. Никто не оценит труды. :coffee:
 
[HotFix]

Ловил NullPointerException если указанный аргумент не совпадал ни с одним из правил в списке. У кого не работает - перекачайте.

Перезалито.
 
♥ лучше чем у меня:DD
В commands один говнокод. Да и статических методов много. Уж никак не пойму чем они плохи. В любом случае стоит commands переписать.

Я вот думаю, оставить его так, как есть - "допилом" к Essentials, или сделать из него полноценный менеджер наказаний?

P.S я бы твой плагин и менеджером то не назвал. Он многофункциональный)
Его не обязательно можно использовать для банов / мутов.
Кому не сложно, проверьте плагин на более древних версиях.
 
Последнее редактирование:
Последнее редактирование:
на своем же сервере нарушил правила получил бан ._______.
 
Проверь, отпишись =D
В теории - должен. На практике - не довелось проверить.
Там в основе своей я везде цепляюсь за Essentials. Так что проблем возникнуть не должно.
Работает :), добавь так же защиту от бана))
 
Работает :), добавь так же защиту от бана))
В Essentials же есть?
Хочу побороть свою природу, и избавится от всей статики в классах. Исключая интерфейс с конфигурацией само-собой.
Ещё заметил, что если попробовать забанить оп'а, то Essentials напишет, что этого сделать нельзя, однако сообщение о бане будет выведено.
[Обновлён]

Немного поправил код, избавился от статики (там где это было необходимо).
Спасибо за разьяснения Dereku и NINJA, за исходный код его плагина.
(Так и не воспользовался им :) )

Перезалито.
 
(Так и не воспользовался им :) )
А и не нужно. Ведь это только пример.

Посмотрел код, поржал: Парсинг действия в командах, сообщения не перезагружаются.
Пилю более красивую версию на костях твоего плагина.
Что то я совсем увлёкся, и в итоге от твоего плагина остались лишь название пакета и команда.
http://puu.sh/oCGeS/f0b9c41d6e.zip
 
Последнее редактирование:
сообщения не перезагружаются.
В каком смысле? Каким образом сообщения должны перезагружаться?
На счёт github - он у меня уже есть, нужно только код залить. На счёт переписанного плагина - плохо поступили. Плагин то был мой, а теперь фактически - ваш. Да, код не идеален, да и не стремлюсь пока к идеалу - далеко ещё. Тем неменее - он работал и достаточно хорошо.

Хотели бы нормально помочь - закинули бы исходники вашего творения мне в ЛС. Я бы уже решил что с ними делать.
 
Последнее редактирование:

Поделиться этой страницей

Назад
Верх