Что бы вы хотели видеть в SourceBans?

Тема в разделе "Всякое", создана пользователем The Night Fury, 25 июл 2016.

  1. The Night Fury

    The Night Fury Администратор

    Сообщения:
    1.221
    Симпатии:
    914
    Завершаю доработку своего банлиста. Возник вопрос: какого функционала не хватало в SourceBans из коробки?

    • Банлист (поиск бана)
    • Коммлист (аналог sourcecomms)
    • REST API для плагинов
    • Нативная поддержка в принципе любой игры, способной слать HTTP запросы и находящейся под крылом стима
    • Менее ущербная система шаблонов
    • Мультиязычность (пока только ручная)
    • Возможность установки в SQLite3 (#thankspdo)
    • Импорт банов из SourceBans
    • Систему платного разбана
    • Интерфейс администратора
    • Общий список банов
    • Управление админами (в том числе и покупка админок)
    • RCon
    • Мониторинг серверов
    • Автоматический установщик

    • Более лёгкая система, работает только на двух таблицах
    • Работает через HTTP запросы к API, а не через запросы к базе
    • Не имеет дырки в виде интерфейса администратора
    • Не управляет админами

    Главная страница (приветствие, ссылки на форум, разбан, контакты): home.png
    Поиск банов: module.search.bans.png
    Результат поиска банов: module.search.bans.result.png & module.search.bans.result2.png
    Поиск CommBan’ов: module.search.comm.png
    Результат поиска CommBan’ов: module.search.comm.result.png & module.search.comm.result2.png

    • Ничего
    • Проверка на наличие бана
    • Проверка на наличие CommBan’а
    • Добавление/обновление/удаление бана
    • Добавление/обновление/удаление CommBan’a
    • При отключении клиента с баном выводить в окно Disconnect информацию: причину, длительность бана, BanID и ссылку на OB
    • Работа с базой данных напрямую
    • Синхронизация админов со списком админов в веб-части

    • Работа со SteamID64 (comid)
    • Время представлено в секундах
    • Калякуляция expired производится вручную, нет поля expires
    • Работа с HTTP GET, POST, PATCH и DELETE (возможен оверрайд типа запроса при составлении, если методы не поддерживаются: X-Http-Method-Override)
    • HMVC с примерами модулей


    Что хотели бы видеть помимо того, что перечислено выше?
     
    Последнее редактирование: 5 авг 2016
    Dreizehnt и EmojiQ нравится это.
  2. kleuser

    kleuser

    Сообщения:
    561
    Симпатии:
    76
    @The Night Fury, из коробки не хватает показа забаненному игроку, кто его забанил, причина и время бана.
    А то приходиться допиливать в ручную, а тем кто не селен в этом - это геморой.
    Думаю это полезная фишка, и почему ее раньше не сделали сразу, не понятно.
     
  3. m22b

    m22b Read Only

    Сообщения:
    1.022
    Симпатии:
    209
    Улыбнул с платным унбаном :)

    Если все будет допилино то буду админов сервачка просить поставить как выпустите :)
     
  4. Webman

    Webman Developer

    Сообщения:
    702
    Симпатии:
    182
    Список банов на главной странице сделай
     
  5. The Night Fury

    The Night Fury Администратор

    Сообщения:
    1.221
    Симпатии:
    914
    Нет, этого не будет — лишняя информация. Игрок сам ищет свой бан, иначе смысла делать этот скрипт нет.
     
  6. Webman

    Webman Developer

    Сообщения:
    702
    Симпатии:
    182
    Оффтоп
     
  7. NIKOLYA-PRODIGY

    NIKOLYA-PRODIGY ANPORTGAMES.RU

    Сообщения:
    428
    Симпатии:
    81
    Хотелось бы следующий функционал ...
    У меня стоят плагины автобана за ТК, АФК и т.д. допустим на сутки
    Не хватает автоматического перманента за повторные нарушения, ну и с последующим вычищением базы прошлых банов
    Грубо говоря у юзера есть нарушения, на 3й раз он получает перманент, инфа о прошлых банах и попытках подключения вычищается и заносится в комменты допустим
    Я так понимаю это можно сделать пхп скриптом, который будет раз в сутки допустим прогонять базу на наличие нужных условий
    Как вариант допустим в СБ ФОРК дописан плагин с функцией отображения имеющихся нарушений админам в чате при коннекте к серверу юзера, можно к нему еще дописать условия (так как плагин уже определяет прошлые нарушения, добавить условия перебана на перманент)
     
  8. AS TRO

    AS TRO

    Сообщения:
    1.055
    Симпатии:
    508
    @The Night Fury, демо можно? :)
    Оффтоп
    --- Добавлено позже ---
    А как тогда будет админ управлять банами и мутами, если не будет админский части?
     
  9. The Night Fury

    The Night Fury Администратор

    Сообщения:
    1.221
    Симпатии:
    914
    Накопительную систему создать из существующей структуры можно, но лучше такое делать на уровне сервера:
    Код:
    local g_sTerm = "Player 123"
    local g_iMode = 2
    local g_tResponse = nil
    
    function tablelength(tTable)
        local count = 0
        for _ in pairs(tTable) do count = count + 1 end
        return count
    end
    
    function checkResponse(tResponse)
        if(tResponse["status"] == true) then
            if(tablelength(tResponse["bans"]) >= 3) then pseudoFunc__banPlayer() end
        end
    end
    
    local g_tData = {
        url = "http://host.com/ob/api/bans/search/"..g_sTerm.."/"..g_iMode,
        method = "get",
        parameters = {},
        headers = {},
        success = function(code, body, headers)
            g_tResponse = util.JSONtoTable(body)
            checkBans(g_tResponse);
        end,
        failed = function(message)
            print("Failed: "..message)
        end
    }
    
    HTTP(data)
    Примерно так. checkResponse() проверит, нет ли в вернувшемся Json трёх массивов. Если есть, то вызовем псевдофункцию banPlayer().
    Чуть позже, возможно. Пока только на личном хосте.
    API. Можно при помощи cURL отправлять запросы, можно с сервера управлять записью.
     
    Последнее редактирование: 25 июл 2016
  10. AS TRO

    AS TRO

    Сообщения:
    1.055
    Симпатии:
    508
    @The Night Fury, это капец как не удобно будет :С ибо если я с телефона, как мне быть? В игру то не зайду) надо сделать в веб части хотя бы "мини админку". Ибо по другому будет ограниченый функционал для админов, что приведет к отказу от данного продукта... Ну это мое мнение) ИМХО)
     
  11. The Night Fury

    The Night Fury Администратор

    Сообщения:
    1.221
    Симпатии:
    914
    Не хочу оставлять эту дырку в управлении сервером. Расчёт такой: имеется администратор, который способен изменить/добавить/удалить бан. Всё совершается со стороны сервера, а банлист является просто банлистом.
    Админы находятся на сервере, оттуда оперируют базой -> вынуждены всегда видеть ситуацию, а не доверять на слово.
    cURL можно вкрутить в любой смарт, если на то пошло.

    Т.о. цель — создать простую и безопасную систему, которая будет дополнением к серверу, а не отдельным способом админить. Тот, кому требуется более простая и лёгкая система, воспользуется OB. Те же, кому понадобится внешний доступ к серверу, воспользуются либо SB, либо чем-то другим (возможно, напишу потом полнофункциональный аналог SB).

    В большинстве случаев именно такие системы использовали проекты крупнее — админы всегда вынуждены были находиться на сервере, а те, кто выше — следили за проблемами с игроками. Пока что цель — сделать такой вот „продукт“, который будет надёжен в строгой иерархии. Проекты поменьше вряд ли выберут OB как замену из-за необходимости делать в ней всё руками (да и безопасность серверов там не является такой уж большой проблемой).

    Ну и говоря о неудобстве: здесь под большим вопросом, так как можно создать приложения, которые будут работать на стороне клиента (скажем, apk/bin/exe, etc.). Там-то можно улучшить безопасность (логин по ключу, например, а не по паре логин-пароль). Зависит от того, что требуется конкретно в ситуации.
     
    skolobes, | HARD | CORE | и Danyas нравится это.
  12. R1KO

    R1KO Супер-модератор

    Сообщения:
    5.972
    Симпатии:
    2.978
    Как я представляю меню:
    • Управление банами (главное меню админки)
      1. Забанить игрока
        • Список игроков
        • ...
        • ...
          Выбрали игрока ->
          • Выбор причины
          • ...
          • ...
            Выбрали причину ->
            • Выбор срока
            • ...
            • ...
              Выбрали срок -> Бан
      2. Банлист
        • Список банов
        • ...
        • ...
          Выбрали бан ->
          • Ник: Ник игрока
          • Стим: Стимигрока
          • Админ: Ник админа
          • Срок: Длительность бана
          • Причина: Причина
          1. Разбанить
          2. Измениить срок
          3. Измениить причину
      3. Оффлайн бан (пока только в теории)
        • Список игроков
        • ...
        • ...
          Выбрали игрока ->
          • Выбор причины
          • ...
          • ...
            Выбрали причину ->
            • Выбор срока
            • ...
            • ...
              Выбрали срок -> Бан
    Что изменить?
    --- Добавлено позже ---
    Из серверной части:
    • Сделано:
      • Функция получения записей (SteamWorks)
      • Функция добавления записей (SteamWorks)
      • Функция удаления записей (SteamWorks)
      • Функция обновления записей (SteamWorks)
      • Проверка авторизации (SteamWorks)
      • Менюшки
      • Загрузка кфг
     
    Последнее редактирование: 30 июл 2016
  13. The Night Fury

    The Night Fury Администратор

    Сообщения:
    1.221
    Симпатии:
    914
    Импорт банов из SB готов. Протестирован на SB 1.4.10, но и с версиями выше должен справляться.
    В экспорт попадают только те баны, которые имеют SteamID. Транзит переведёт SteamID32/3/64 в нужный формат автоматически (как ID администратора, так и игрока).

    Нужен дамп большой базы банов. Требуются только две таблицы: {p}_bans & {p}_admins. Из admins требуются только следующие столбцы: aid, authid.

    • Приветствие и пояснения: transit_main.png
    • Страница экспорта: transit_export.png
    • Страница импорта: transit_import.png
    • Ошибка при загрузке базы: transit_import_failure.png
    • Успешная вставка базы: transit_import_success.png

    Модуль Transit является модулем поддержки, так что работать без переключения окружения не будет — либо testing, либо development придётся включить. Но всё равно имеет смысл удалить модуль после импорта.

    Само собой, админы от импорта банов в список админов не внесутся. Действующих админов можно внести вручную в конфиге (как обычно), остальные хоть и будут иметь в базе SteamID, будут пользователям отображаться как „N/A“. В API же можно будет получить SteamID & имя админа.

    Серверная часть плагина осталась на R1KO, так что пока он не допишет, релиза не будет, увы. Но базовый функционал готов.

    Если есть идеи — подкидывайте. Если реализуемо, то сообщу. Пока что на очереди модуль CTBans для Jail.
     
  14. Dreizehnt

    Dreizehnt Unteroffizier

    Сообщения:
    619
    Симпатии:
    200
    Что-то тему не видел :D... Не хватает автоматического добавления "демо" по всем "банам", пишутся "демки" все, а подкрепляется с "баном" та, на которой запечатлён момент.
     
    Danyas нравится это.
  15. TolikCorp

    TolikCorp

    Сообщения:
    855
    Симпатии:
    271
    Возможность показывать ИМЯ АДМИНА с кликабельной ссылкой на стим профиль.
     
  16. The Night Fury

    The Night Fury Администратор

    Сообщения:
    1.221
    Симпатии:
    914
    [ANY] tEasyFTP v0.0.2 (2011-12-29) - AlliedModders
    Можно использовать этот callback:
    PHP:
    EasyFTP_UploadFile("demos""myDemoFile.dem""/"EasyFTP_CallBack);
    при выдаче бана, выгружать его с именем, которое будет равно BanID. Если есть инструментарий для трима банов, то имеет смысл использовать его до выгрузки. Как демки пишутся на стороне сервера, есть ли такой функционал?

    Такой вид сойдёт, или лучше текст сделать ссылкой?
    Screenshot_1.png
     
    Серый™ и Dreizehnt нравится это.
  17. TolikCorp

    TolikCorp

    Сообщения:
    855
    Симпатии:
    271
    Любой вариант - уже круто. Со значком по мне так лучше, игрок поймет, что тут можно нажать.
     
  18. Dreizehnt

    Dreizehnt Unteroffizier

    Сообщения:
    619
    Симпатии:
    200
    А ещё можно реализовать вход по Steam? И присвоить игрокам статусы ввиду их положения?

     
  19. The Night Fury

    The Night Fury Администратор

    Сообщения:
    1.221
    Симпатии:
    914
    Пока что работает иначе: пользователь просто получает свой SteamID64 и пробивает баны по нему.
    Теоретически, сделать такое можно, да, но это будет уже отдельным модулем, не стандартной комплектацией.

    Думаю, так даже проще будет:
    Ссылка на главной -> запрос SteamAuth -> редирект на служебную, где выводится информация по SteamID на каждую блокировку. Шагов меньше, информации столько же, а бесполезные уведомления ставить смысла нет.

    Сегодня попробую реализовать.
    --- Добавлено позже ---
    Готово.

    module.steam.check.login.png module.steam.check.login.steam.png
    module.steam.check.view.none.png module.steam.check.view.bans.png module.steam.check.view.both.png

    Выводит максимум пять последних банов с краткой информацией.
     
    Последнее редактирование: 6 авг 2016
  20. Dreizehnt

    Dreizehnt Unteroffizier

    Сообщения:
    619
    Симпатии:
    200
    Ещё такой вещи не хватает как простая настройка внешнего вида.

    Настройка вида:

    Задний фон:
    [цвет / картинка] - переключатель
    |картинка сейчас| или |текущий цвет|
    [загрузить / удалить (после того как залита кнопка загрузить исчезает)] fon_for_ob.png |превью|
    [да
    / нет] повторять
    [да
    / нет] растягивать по размеру экрана
    |палитра цветов|
    Было: |цвет до| Станет: |цвет после|
    - тут может показать общим планом как выглядеть будет...

    Рамки:
    [цвет / картинка]
    |картинка сейчас|
    или |текущий цвет|
    |информация о размере картинок| (всегда отображено)
    [загрузить / удалить] line_left.png |превью|
    [загрузить картинку
    / удалить] line_right.png |превью|
    [загрузить картинку / удалить] line_up.png |превью|
    [загрузить картинку / удалить] line_down.png |превью|
    |палитра цветов|
    Было: |цвет до| Станет: |цвет после|


    Шапка:
    [цвет / картинка]
    |картинка сейчас| или |текущий цвет|
    [загрузить / удалить] banner.png |превью|
    [да
    / нет] повторять (заполнит определённый размер, приклеивая по всем сторонам саму себя)
    [да / нет] растягивать по размеру экрана
    |палитра цветов|
    Было: |цвет до| Станет: |цвет после|


    Логотип:
    |информация о размере картинки|
    |картинка сейчас|

    [загрузить / удалить] logo.png |превью|
    |положение|
    [центр] [левый край]

    Иконки (МОДы и остальные):
    |то что сейчас| -csgo [загрузить] icon1.png |превью|
    |то что сейчас| -dods [загрузить] icon2.png |превью|
    |то что сейчас| -cs [загрузить] icon3.png |превью|
    |то что сейчас| -.... [загрузить] iconN.png |превью|

    |то что сейчас| Блокировка [загрузить] icon_bl.png |превью|
    |то что сейчас| Бан из игры [загрузить] icon_bg.png |превью|
    |то что сейчас| Бан из WEB[загрузить] icon_bw.png |превью|
    |то что сейчас| Мут голосовой связи [загрузить] icon_ms.png |превью|
    |то что сейчас| Мут чата [загрузить] icon_mc.png |превью|
    |то что сейчас| комментарий [загрузить] icon_com.png |превью|

    Шрифт:
    |какой сейчас в админменю| - его названием написать
    [выбор шрифта]
    [загрузить свой]

    |какой сейчас по сайту|
    [выбор шрифта]
    [загрузить свой]

    Цвет текста:
    |текст админменю|
    |палитра цветов|
    Было: |цвет до| Станет: |цвет после|

    |текст меню навигации|
    |палитра цветов|
    Было: |цвет до| Станет: |цвет после|

    |текст ,блоков|
    |палитра цветов|
    Было: |цвет до| Станет: |цвет после|