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

The Night Fury

Участник
Сообщения
1,300
Реакции
1,395
Завершаю доработку своего банлиста. Возник вопрос: какого функционала не хватало в 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 с примерами модулей


Что хотели бы видеть помимо того, что перечислено выше?
 
Последнее редактирование:

kleuser

Участник
Сообщения
1,838
Реакции
732
@The Night Fury, из коробки не хватает показа забаненному игроку, кто его забанил, причина и время бана.
А то приходиться допиливать в ручную, а тем кто не селен в этом - это геморой.
Думаю это полезная фишка, и почему ее раньше не сделали сразу, не понятно.
 

m22b

Участник
Сообщения
1,007
Реакции
283
Улыбнул с платным унбаном :)

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

Webman

Nevermind
Сообщения
803
Реакции
330
Список банов на главной странице сделай
 

NIKOLYA-PRODIGY

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

AS TRO

Участник
Сообщения
1,159
Реакции
750
@The Night Fury, демо можно? :)
Оффтоп
--- Добавлено позже ---
А как тогда будет админ управлять банами и мутами, если не будет админский части?
 

The Night Fury

Участник
Сообщения
1,300
Реакции
1,395
Хотелось бы следующий функционал ...
У меня стоят плагины автобана за ТК, АФК и т.д. допустим на сутки
Не хватает автоматического перманента за повторные нарушения, ну и с последующим вычищением базы прошлых банов
Грубо говоря у юзера есть нарушения, на 3й раз он получает перманент, инфа о прошлых банах и попытках подключения вычищается и заносится в комменты допустим
Я так понимаю это можно сделать пхп скриптом, который будет раз в сутки допустим прогонять базу на наличие нужных условий
Как вариант допустим в СБ ФОРК дописан плагин с функцией отображения имеющихся нарушений админам в чате при коннекте к серверу юзера, можно к нему еще дописать условия (так как плагин уже определяет прошлые нарушения, добавить условия перебана на перманент)
Накопительную систему создать из существующей структуры можно, но лучше такое делать на уровне сервера:
C-подобный:
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 отправлять запросы, можно с сервера управлять записью.
 
Последнее редактирование:

AS TRO

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

The Night Fury

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

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

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

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

R1KO

fuck society
Сообщения
9,457
Реакции
7,786
  • Команда форума
  • #12
Как я представляю меню:
  • Управление банами (главное меню админки)
    1. Забанить игрока
      • Список игроков
      • ...
      • ...
        Выбрали игрока ->
        • Выбор причины
        • ...
        • ...
          Выбрали причину ->
          • Выбор срока
          • ...
          • ...
            Выбрали срок -> Бан
    2. Банлист
      • Список банов
      • ...
      • ...
        Выбрали бан ->
        • Ник: Ник игрока
        • Стим: Стимигрока
        • Админ: Ник админа
        • Срок: Длительность бана
        • Причина: Причина
        1. Разбанить
        2. Измениить срок
        3. Измениить причину
    3. Оффлайн бан (пока только в теории)
      • Список игроков
      • ...
      • ...
        Выбрали игрока ->
        • Выбор причины
        • ...
        • ...
          Выбрали причину ->
          • Выбор срока
          • ...
          • ...
            Выбрали срок -> Бан
Что изменить?
--- Добавлено позже ---
Из серверной части:
  • Сделано:
    • Функция получения записей (SteamWorks)
    • Функция добавления записей (SteamWorks)
    • Функция удаления записей (SteamWorks)
    • Функция обновления записей (SteamWorks)
    • Проверка авторизации (SteamWorks)
    • Менюшки
    • Загрузка кфг
 
Последнее редактирование:

The Night Fury

Участник
Сообщения
1,300
Реакции
1,395
Импорт банов из 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.
 

Dreizehnt

Доминик
Сообщения
1,160
Реакции
798
Что-то тему не видел :D... Не хватает автоматического добавления "демо" по всем "банам", пишутся "демки" все, а подкрепляется с "баном" та, на которой запечатлён момент.
 

TolikCorp

Участник
Сообщения
874
Реакции
334
Возможность показывать ИМЯ АДМИНА с кликабельной ссылкой на стим профиль.
 

The Night Fury

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

Возможность показывать ИМЯ АДМИНА с кликабельной ссылкой на стим профиль.
Такой вид сойдёт, или лучше текст сделать ссылкой?
Screenshot_1.png
 

Dreizehnt

Доминик
Сообщения
1,160
Реакции
798
А ещё можно реализовать вход по Steam? И присвоить игрокам статусы ввиду их положения?

Первый раз зашёл:
"Здравствуйте, Dreizehnt! У Вас имеются нарушения! Ознакомьтесь с ними здесь: octobans.hlmod.ru/dreizehnt_profile. Информация по снятию блокировки: octobans.hlmod.ru/unlock_info."
или
"Здравствуйте, Dreizehnt! Вы на сайте системы наказаний для нарушителей правил. У Вас нет нарушений! Спасибо что соблюдаете правила!"

octobans.hlmod.ru/dreizehnt_profile:
Ваше имя:
Время на сервере:
Бля бла:
Ля ля:
Активные блокировки:
- блокировка чата на сервере CS:S [осталось 5 минут];
- блокировка голосовой связи на сервере CS:GO [навсегда];
- бан на сервере CS:GO [осталось 30 минут].

octobans.hlmod.ru/unlock_info:
На нашем сервере действуют правила и для нарушителей предусмотрены блокировки:
1) Блокировка микрофона или чата - данный вид блокировок может иметь срок от 5 минут до бесконечного срока, Вы можете оставить заявку на снятие ограничения или обжалования нарушения: hlmod.ru/forum/unlock, так же можете снять моментально здесь, если согласны с нарушением: octobans.hlmod.ru/pay_unlock;
2) Временная блокировка доступа на сервер - речь идёт о временных банах, Вы так же можете оставить заявку здесь: hlmod.ru/forum/unlock или снять моментально, если согласны: octobans.hlmod.ru/pay_unlock;
3) Перманентная блокировка или бан навсегда - данный вид нарушения возможно снять только через заявку, в случае Вашей невиновности или полного раскаяния.

Повторный вход за сегодня:
"Dreizehnt! Список Ваших нарушений: octobans.hlmod.ru/dreizehnt_profile. Информация: octobans.hlmod.ru/unlock_info."
или
"Dreizehnt! У Вас нет нарушений, уходите!"

Повторный вход за сутки:
"Здравствуйте, Dreizehnt! У Вас имеются нарушения! Ознакомьтесь с ними здесь: octobans.hlmod.ru/dreizehnt_profile. Информация по снятию блокировки: octobans.hlmod.ru/unlock_info."
или
"Здравствуйте, Dreizehnt! Вы на сайте системы наказаний для нарушителей правил. У Вас нет нарушений! Спасибо что соблюдаете правила!"
 

The Night Fury

Участник
Сообщения
1,300
Реакции
1,395
А ещё можно реализовать вход по Steam?
Пока что работает иначе: пользователь просто получает свой SteamID64 и пробивает баны по нему.
Теоретически, сделать такое можно, да, но это будет уже отдельным модулем, не стандартной комплектацией.

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

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

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

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

Dreizehnt

Доминик
Сообщения
1,160
Реакции
798
Ещё такой вещи не хватает как простая настройка внешнего вида.

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

Задний фон:
[цвет / картинка] - переключатель
|картинка сейчас| или |текущий цвет|
[загрузить / удалить (после того как залита кнопка загрузить исчезает)] 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 |превью|

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

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

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

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

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