Разработать плагин бан системы

Недавно обновленные
XPanel
XPanel
0.00 star(s)
Простенькая и красивая инфопанель.
Semi-Procedural
Semi-Procedural #1
5.00 star(s)
Полу-процедурная карта размером 3000
Остров
Остров в океане [Застрой]
5.00 star(s)
Кастомный префаб, который можно использовать под застройку 5х4х4
Azure
Azure Island
5.00 star(s)
4500, 11к префабов, кастомные места под застрой
Shipwreck
Shipwreck
0.00 star(s)
Затонувшие локации, охраняемые дайверами и субмаринами!
10
10 мест под застрой | НАБОР
4.00 star(s)
Набор из 10 кастомных мест под застрой
Buildind
Buildind Sites [Места под застройку]
5.00 star(s)
Позволяет в один клик добавить на любую карту уникальные места для строительства домов!
Final
Final Haven
0.00 star(s)
3000 размер, 40к префабов
IQTurrets
IQTurrets
5.00 star(s)
Турели без электричества с лимитами на игрока/шкаф
IQRates
IQRates
4.91 star(s)
Рейтинг контроллер на ваш сервер! Без излишеств с удобным функционалом!
IQTeleportation
IQTeleportation
5.00 star(s)
Удобная система телепортации с расширенными возможностями и удобствами для игроков
Decay:
Decay: The Last Haven
0.00 star(s)
4500, 70k префабов
Набор
Набор из 10 кастомных пещер 3
1.00 star(s)
Кастомные места для застройки
Пак
Пак 5 мест под застройку
0.00 star(s)
Кастомные места под застрой
Blossom
Blossom Island
0.00 star(s)
4500 размер

pokemon

Пользователь
Messages
103
Reaction score
14
Приветствую.
Необходимо разработать плагин по типу EnhancedBanSystem
EnhancedBanSystem - не подходит много лишнего

ТЗ:

1. Перехват бана, чтобы баны не писали в bans.cfg
2. Сохранение банов в Mysql

Структура таблиц:

Таблица - `servers`
Поля:
- id (auto_increment, int 11)
- server_name (varchar 100)
- server_address (ip:port) (varchar 100)

Таблица - `bans`

Поля:

- id (auto_increment, int 11)
- steam_id (varchar 100)
- nickname (varchar 100)
- reason (varchar 100)
- ip (varchar 100)
- owner
- expired (decimal)
- server_id
- created (datetime)
- updated (datetime)

owner - ник админа который выдал бан:steamID, при автоматическом бане античитом значение "Server"
nickname - есть проблема в EnhancedBanSystem что символы не читаемы растом в нике вызывают фейл и бан не записывается в БД, нужно это решить, может заменой ника на steam_id игрока
reason - будет либо от античита своя либо та которую указали при бане с консоли: ban [STEAMID] [читак] [TIME:1h OR 1d...] или в чате на сервере имея определенный пермишен /ban [STEAMID] [читак] [TIME:1h OR 1d...]
ip - ip игрока
expired - как указал тип данных для хранения "decimal", в случае бана навсегда значение 0, в случае на время unixtime(или что там понятное для раста, при кике пишет на сколько забанен), значение -1 разбанен

Таблица - `unban`

- id (auto_increment, int 11)
- ban_id (int 11)
- owner
- created (datetime)

owner - ник админа который разбанил:steamId
ban_id - связь с таблицей bans -> id

При выполнении команды с консоли: unban [STEAMID] или в чате на сервере имея определенный пермишен /unban [STEAMID]

3. При заходе игрок проверяется в базе на наличие активных банов на всех серверах, если есть бан хоть на каком либо - кик [reason] [expired] ? [expired]:''
4. Должны быть ланги для RU и EN
5. Раздельные пермишены на бан и разбан
6. Конфиг должен иметь белый списк ip, данный ip из списка игнорируется в случае обхода бана и игрок не отлетает (актуально для тех кто играет с 1 ip и 1 банится и все за ним атоматом).
7. При бане проверка на обход бана сменой аккаунта, проверяется на совпадение ip и если есть бан с там же - бан, причину настраивать в конфиге, дефолт Ban Evade
8. Добавить в конфиг возможность указать свою иконку и префикс для сообщений в чате.
9. Логирование в DiscordMessages по Discord Webhook Url, -> Oxide.Ext.Discord.dll

Формат лога в DS:
Ник игрока (steam id | ip) был забанен за: [reason]


Мой дискорд для связи Ghoster#2473
 
Back
Top Bottom