[Feature Request] Offline Actions & Offline Admins
BlackYuzia opened this issue · 7 comments
Offline Actions (aka Bans & Mutes Storage)
Описание
Суть его проста - хранить любые баны, муты (и чет еще?) на сервере в локальной базе данных. При условии что плагин не смог получить доступ к базе данных. т.е. все данные будут храниться локально и при первом же доступе к базе все эти данные будут занесены в базу и удалены из локальной базы.
При повторном разрыве соединения все повторяется.
Offline Admins (aka Cached Admins)
Описание
Суть его также проста - хранить всех админов из удаленной (mysql) базы в локальную (sqlite) базу данных. Т.е. при каждом подключении к базе, плагин будет локально хранить админов в базе. Если будет разрыв соединения с базой данных, плагин будет использовать админов из своей локальной базы. При подключении же к удаленной (mysql) базе данных, плагин будет просто обновлять локальную базу данных.
Такой способ имеет свои недостатки, например - если админ был удален из удаленной базы данных, но все еще доступен в локальной, но это лучше чем если вообще без админов.
Offline Actions
Не понял вообще, что предлагается.
Offline Admins
Сейчас и так реализовано, но через бинарные файлы.
Сейчас и так реализовано, но через бинарные файлы.
Мб оно и так, но админка пропадает после:
sm plugins reload materialadmin;
sm_reloadadmins;
Не понял вообще, что предлагается.
ыдача банов и мутов даже если база недоступна. Сейчас происходит ошибка - Handler 0 Error (или чет типо такого)
Выдача банов и мутов даже если база недоступна. Сейчас происходит ошибка - Handler 0 Error (или чет типо такого)
И так реализовано. Но если SQLite не подключился к моменту попытки выдачи бана - да, может возникать ошибка.
Мб оно и так, но админка пропадает после:
Потому что оно пытается загрузить админки сначала из базы. И только потом, если не удалось, должно пойти в файлы. Но проверю.
И так реализовано. Но если SQLite не подключился к моменту попытки выдачи бана - да, может возникать ошибка.
Игрока если что, которого банят, даже не кикает. Так что или косяк плагина или эта функция не реализована вообще.
Примерно так должно отрабатывать:
- Запрос в mysql базу данных
- Если база недоступна сохраняем локально бан
- Кикаем забаненного игрока и не пускаем его на сервер
- Выводим сообщение
Игрок был добавлен в локальный список банов так как нет доступа к удаленной базе данных
И так реализовано. Но если SQLite не подключился к моменту попытки выдачи бана - да, может возникать ошибка.
Проверяй
При потери коннекта с бд сейчас следующее:
- админы не работают (вообще, даже те что в кэше уже есть)
- муты / баны не протестил до конца, но скорее всего тоже не работают
админы не работают (вообще, даже те что в кэше уже есть)
Должно теперь работать.
@CrazyHackGUT а блокировка ивента?