myDC.ru

Здравствуйте, гость ( Вход | Регистрация )

 

> Скрипт банов для RusHub, тестим и комменьтруем

Теги
Setuper
сообщение 4.1.2010, 20:31
Сообщение #1


RusHub team lead
**************

Группа: Модераторы
Сообщений: 4 030
Регистрация: 20.6.2008
Из: г. Королёв (Моск. обл.)
Пользователь №: 46
Спасибо сказали: 1695 раз




Название скрипта: модуль банов + менеджер банов
Скрипт для: RusHub
Автор: Wariner (немного доработал: Setuper)
Описание: Модуль банов позволяет использовать функции бана в скриптах. Менеджер банов позволяет забанить, используя команды.
Модуль банов не может работать отдельно от менеджера банов, так как менеждер банов содержит основную таблицу с банами.

Внимание. Этот скрипт будет работает только с lua плагином, который равен или выше, чем версия v1.4, так как в плагине был устранён баг в функции Core.SetGVal.

Теперь расскажу чего я добился. Теперь, подключая модуль Ban в любом скрипте можно будет забанить того или иного пользователя и при этом не нужно будет читать из файла базу забаненных или использовать таблицу с забаненными, - всё это скрыто в модуле Ban. Очень удобно банить с помощью модуля.


Прикрепленный файл  Ban.lua ( 2.63 килобайт ) Кол-во скачиваний: 378
Прикрепленный файл  BanManager.rar ( 2.07 килобайт ) Кол-во скачиваний: 291
Go to the top of the page
+Quote Post
4 страниц V   1 2 3 > »   
Начать новую тему
Ответов
Wariner
сообщение 3.1.2010, 13:49
Сообщение #2


Самый главный активист :-D
***********

Группа: Модераторы
Сообщений: 2 790
Регистрация: 29.6.2008
Из: г. Тула
Пользователь №: 97
Спасибо сказали: 439 раз




В общем не успел я доделать всё что хотел, время кончилось. поэтому вот тут выкладываю модуль и скрипт для банов. протестировано на версии 2,0,3
Пока нет разделения на профили...

Сам модуль Ban.lua кладём в папку libs
Скрипт BanManager.lua с папкой BanManager в папку scripts

PS: Илюх жду твоих коментов))
PPS: От остальных жду доработок)))))


Спасибо сказали:
Go to the top of the page
+Quote Post
Accelerator
сообщение 3.1.2010, 14:16
Сообщение #3


Developer
******

Группа: Модераторы
Сообщений: 541
Регистрация: 11.11.2008
Из: Челябинск
Пользователь №: 1 075
Спасибо сказали: 241 раз




Спасибо. Но есть 1 недочёт, который я пока что заметил))) Забанить какого-либо пользователя может любой, кто присутствует на хабе =)))
Go to the top of the page
+Quote Post
Saymon21
сообщение 3.1.2010, 14:19
Сообщение #4


Site Reliability Engineer
*********

Группа: Модераторы
Сообщений: 1 772
Регистрация: 27.6.2009
Из: Чувашия, г. Чебоксары
Пользователь №: 3 719
Спасибо сказали: 478 раз




Цитата
Забанить какого-либо пользователя может любой, кто присутствует на хабе =)))

Цитата
Пока нет разделения на профили...
Go to the top of the page
+Quote Post
Setuper
сообщение 3.1.2010, 14:45
Сообщение #5


RusHub team lead
**************

Группа: Модераторы
Сообщений: 4 030
Регистрация: 20.6.2008
Из: г. Королёв (Моск. обл.)
Пользователь №: 46
Спасибо сказали: 1695 раз




По логике всё верно, но есть пару моментов.
1) Не думаю, что стоит смешивать модули и плагины в одну кучу. Для модулей есть папка libs. Плагины - это динамические библиотеки, которые подключает хаб.
2) Обычно работа с модулями несколько иная и предполагает некий защитный механизм кода (lua функция module), то есть существование модуля, как таблицы в глобальном окружении.

А так в принципе все хорошо на мой взгляд написано. Спасибо.
Go to the top of the page
+Quote Post
Wariner
сообщение 3.1.2010, 15:07
Сообщение #6


Самый главный активист :-D
***********

Группа: Модераторы
Сообщений: 2 790
Регистрация: 29.6.2008
Из: г. Тула
Пользователь №: 97
Спасибо сказали: 439 раз




Цитата(Setuper @ 3.1.2010, 14:45) *
1) Не думаю, что стоит смешивать модули и плагины в одну кучу. Для модулей есть папка libs. Плагины - это динамические библиотеки, которые подключает хаб.

значит надо просто перенести в папку libs?
Цитата(Setuper @ 3.1.2010, 14:45) *
2) Обычно работа с модулями несколько иная и предполагает некий защитный механизм кода (lua функция module), то есть существование модуля, как таблицы в глобальном окружении.

можно тут поподробнее и с примером?)))
Go to the top of the page
+Quote Post
Setuper
сообщение 3.1.2010, 15:29
Сообщение #7


RusHub team lead
**************

Группа: Модераторы
Сообщений: 4 030
Регистрация: 20.6.2008
Из: г. Королёв (Моск. обл.)
Пользователь №: 46
Спасибо сказали: 1695 раз




ban.lua:
Код
local base = _G -- ссылка на глобальное окружение
module"Ban" -- объявление модуля

function CheckBanUser(tTable, sNick, sIP)
  for i,v in base.pairs(tTable) do
    if v.Nick == sNick or v.IP == sIP then
      return true, "Вы забанены!"
    end
  end
end


BanManager.lua:
Код
require"ban" -- загрузка модуля

if Ban.CheckBanUser(tTable, sNick, sIP) then -- использование функции модуля
  ...
end
Go to the top of the page
+Quote Post
Wariner
сообщение 4.1.2010, 0:00
Сообщение #8


Самый главный активист :-D
***********

Группа: Модераторы
Сообщений: 2 790
Регистрация: 29.6.2008
Из: г. Тула
Пользователь №: 97
Спасибо сказали: 439 раз




поправил с виденьем Илюхи (надеюсь правильно) + произошли некие изменения:

в модуле остались только 2 функции бан и анбан (обе ещё будут дорабатываться!)
проверку на забаненость и очистка банов по времени перенесены в сам скрипт!

PS: профилей опять же пока нет!

UPD: добавил в скрипт функцию просмотра забаненых!!!
Go to the top of the page
+Quote Post
ExC0tiC
сообщение 4.1.2010, 10:15
Сообщение #9


Начинающий
*

Группа: Пользователи
Сообщений: 21
Регистрация: 11.1.2009
Из: Челябинск, LR
Пользователь №: 1 771
Спасибо сказали: 0 раз




Не работает. Прикрепил скрин. Время выставлял 1m. RusHub 2.0.3 LUA 1.3
Прикрепленные файлы
Прикрепленный файл  BoT.gif ( 30.57 килобайт ) Кол-во скачиваний: 775
 
Go to the top of the page
+Quote Post
Wariner
сообщение 4.1.2010, 11:12
Сообщение #10


Самый главный активист :-D
***********

Группа: Модераторы
Сообщений: 2 790
Регистрация: 29.6.2008
Из: г. Тула
Пользователь №: 97
Спасибо сказали: 439 раз




поправил. скрипт перезалил!
Go to the top of the page
+Quote Post
Setuper
сообщение 4.1.2010, 16:43
Сообщение #11


RusHub team lead
**************

Группа: Модераторы
Сообщений: 4 030
Регистрация: 20.6.2008
Из: г. Королёв (Моск. обл.)
Пользователь №: 46
Спасибо сказали: 1695 раз




С введением переноса таблиц между скриптами, хотелось бы убрать все нагромождения и запихнуть всё в модуль, кроме таблицы банов, которая будет вызываться модулем. То есть, сделать так как и было задумано с самого начала. Есть модуль, и мы, подключая его к любому скрипту, получаем в этом скрипте доступ к функциям бана и только, а таблица банов нас не волнует.
Go to the top of the page
+Quote Post
Wariner
сообщение 4.1.2010, 18:37
Сообщение #12


Самый главный активист :-D
***********

Группа: Модераторы
Сообщений: 2 790
Регистрация: 29.6.2008
Из: г. Тула
Пользователь №: 97
Спасибо сказали: 439 раз




Не совсем понял данный коммент....

Сейчас как раз все функции бана (бан и анбан) находятся в модуле, а всё остальное убрано в скрипт который этим управляет. или я опять что то не вкуриЛ?
Go to the top of the page
+Quote Post
Setuper
сообщение 4.1.2010, 18:40
Сообщение #13


RusHub team lead
**************

Группа: Модераторы
Сообщений: 4 030
Регистрация: 20.6.2008
Из: г. Королёв (Моск. обл.)
Пользователь №: 46
Спасибо сказали: 1695 раз




Сейчас я доработаю и выложу.
По ходу доработки устранил пару багов и немного оптимизировал.
Go to the top of the page
+Quote Post
Wariner
сообщение 4.1.2010, 19:04
Сообщение #14


Самый главный активист :-D
***********

Группа: Модераторы
Сообщений: 2 790
Регистрация: 29.6.2008
Из: г. Тула
Пользователь №: 97
Спасибо сказали: 439 раз




ок жду))))
Go to the top of the page
+Quote Post
Wariner
сообщение 4.1.2010, 21:18
Сообщение #15


Самый главный активист :-D
***********

Группа: Модераторы
Сообщений: 2 790
Регистрация: 29.6.2008
Из: г. Тула
Пользователь №: 97
Спасибо сказали: 439 раз




а какая принципиальная разница между работой моей версии и твоей?(на пальцах)

и почему в темпбане показывает кто забанил а в перманенте нет?
Go to the top of the page
+Quote Post
Setuper
сообщение 4.1.2010, 21:36
Сообщение #16


RusHub team lead
**************

Группа: Модераторы
Сообщений: 4 030
Регистрация: 20.6.2008
Из: г. Королёв (Моск. обл.)
Пользователь №: 46
Спасибо сказали: 1695 раз




У тебя в функцию BanUser первым аргументом передавалась таблица, что не удобно в использовании в различных скриптах.

В постоянном бане я забыл указать. Перезалил.


Код
local sPermBanMsg = [[Вы навсегда забанены на этом хабе.
    Причина: %[REASON]
    Кто забанил: %[BY]
]]

...
if v.Time == "full" then
  Core.SendToUser(UID, sPermBanMsg:gsub("%%%[REASON%]", v.Reason):gsub("%%%[BY%]", v.By), sBot)
  Core.Disconnect(UID)
else
...


Вообще это сообщение можно изменить по желанию админа. Если админ не хочет показывать ник кого, кто забанил, то просто удаляем соответствующую строку в сообщении.
Go to the top of the page
+Quote Post
Wariner
сообщение 4.1.2010, 21:54
Сообщение #17


Самый главный активист :-D
***********

Группа: Модераторы
Сообщений: 2 790
Регистрация: 29.6.2008
Из: г. Тула
Пользователь №: 97
Спасибо сказали: 439 раз




ну с одной стороны да, а с другой ты привязал работу модуля к скрипту. а у меня в любой скрипт можно было сделать dofile и прописать функцию с таблицей. или типо так не оптимально?
Go to the top of the page
+Quote Post
Setuper
сообщение 4.1.2010, 22:07
Сообщение #18


RusHub team lead
**************

Группа: Модераторы
Сообщений: 4 030
Регистрация: 20.6.2008
Из: г. Королёв (Моск. обл.)
Пользователь №: 46
Спасибо сказали: 1695 раз




В принципе нет особой разницы в быстроте выполнения, так как баны не часто вызываются, хотя мой вариант будет работать быстрее.

  1. Мой вариант мне кажется менее геморойный (зачем заботиться о передаче таблицы, если можно этого не делать). А то что модуль привязан к скрипту менеджера банов, то не вижу в этом ничего плохого. Модуль пишется для работы со скриптами, а не отдельно.
  2. Если таблица банов достаточно большая, и она используется в нескольких скриптах, то в твоём случае расход памяти повышается.
  3. В твоём случае таблицы банов в различных скриптах могут различаться. Либо их в каждом скрипте нужно будет перезагружать из файла при каждой смене таблицы другим скриптом, ну или использовать ещё какие-нибудь уловки. А различные таблицы в различных скриптах - это различная инфа о банах. Один скрипт у тебя показывает баны по команде, другой скрипт, допустим, выводит инфу о банах на сайт, третий скрипт ещё куда-нибудь выводит, и везде разная инфа будет, что очень некорректно)))
Go to the top of the page
+Quote Post
Wariner
сообщение 4.1.2010, 22:42
Сообщение #19


Самый главный активист :-D
***********

Группа: Модераторы
Сообщений: 2 790
Регистрация: 29.6.2008
Из: г. Тула
Пользователь №: 97
Спасибо сказали: 439 раз




понятно)))))

ждём функцию дисконекта по ип наверно))))
Go to the top of the page
+Quote Post
ANDRBEST
сообщение 5.1.2010, 20:14
Сообщение #20


Участник
**

Группа: Пользователи
Сообщений: 48
Регистрация: 7.4.2009
Пользователь №: 2 949
Спасибо сказали: 3 раза




при запуске скрипта "BanManager.lua " произошла ошибка: bad argument #1 to 'StartScript' (script was started already or script was contained mistakes)
Go to the top of the page
+Quote Post

4 страниц V   1 2 3 > » 
Ответить в данную темуНачать новую тему
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

Collapse

> Похожие темы

  Тема Ответов Автор Просмотров Последнее сообщение
No New Posts Скрипт: Бот который отвечает в лс
4 мамин_парень 128 11.11.2017, 5:57 Посл. сообщение: мамин_парень
No New Posts как сделать вот этот скрипт
12 мамин_парень 491 13.9.2017, 10:51 Посл. сообщение: dimetro
No New Posts Topic has attachmentsИщу скрипт переадресации (redirect)
Переадресация интернет-юзеров
3 AS_Com 450 27.8.2017, 8:05 Посл. сообщение: Ksan
No New Posts Topic has attachmentsСкрипт Thunder.lua
7 Евген76 6 167 9.8.2017, 11:48 Посл. сообщение: Ksan
No new ВАЖНО: Topic has attachmentsМодули для скриптов RusHub
26 Setuper 22 306 21.3.2017, 17:31 Посл. сообщение: Alexey
No New Posts Требуется скрипт
Нужен скрипт запрета на подключение
5 Nikolaevich 1 775 20.8.2016, 19:52 Посл. сообщение: Ksan
No New Posts RusHub.org
Решаем судьбу домена
12 Nickolya 2 657 19.5.2016, 4:58 Посл. сообщение: DEN 007
No new Topic has attachmentsMagneto - Бесплатный Скрипт Портала Обмена Dc-ссылками Для Локальной Сети
25 UserSide 17 886 17.3.2016, 5:21 Посл. сообщение: dimazikpk
No New Posts Перенос базы пользователей с RusHub на PtokaX
3 Angel_D 2 191 5.12.2015, 2:11 Посл. сообщение: Saymon21
No New Posts Скрипт загрузки файла
1 FreeNas 1 688 21.7.2015, 10:58 Посл. сообщение: HackFresse
No new Topic has attachmentsRusHub. Пакеты для Debian/Ubuntu
47 KT315 29 461 24.5.2015, 23:14 Посл. сообщение: KT315
No new Как вызвать bash скрипт из Lua
14 Iskandark 4 138 3.3.2015, 12:42 Посл. сообщение: Iskandark
No new Topic has attachmentsНовогодний Скрипт
API2
22 Tsd 17 458 12.12.2014, 16:28 Посл. сообщение: Tsd
No New Posts Скрипт запрета видеть чат
запрет видеть чат
2 dimetro 2 170 5.12.2014, 17:37 Посл. сообщение: dimetro
No New Posts Topic has attachmentsпеределать скрипт kinozal.tv
6 BOKOREZ 5 019 30.10.2014, 18:29 Посл. сообщение: Dani_Filth

 



RSS Сейчас: 23.11.2017, 6:35