Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[Feature Request] Offline Actions & Offline Admins #142

Open
BlackYuzia opened this issue Feb 20, 2022 · 7 comments
Open

[Feature Request] Offline Actions & Offline Admins #142

BlackYuzia opened this issue Feb 20, 2022 · 7 comments

Comments

@BlackYuzia
Copy link
Contributor

Offline Actions (aka Bans & Mutes Storage)

Описание

Суть его проста - хранить любые баны, муты (и чет еще?) на сервере в локальной базе данных. При условии что плагин не смог получить доступ к базе данных. т.е. все данные будут храниться локально и при первом же доступе к базе все эти данные будут занесены в базу и удалены из локальной базы.

При повторном разрыве соединения все повторяется.

Offline Admins (aka Cached Admins)

Описание

Суть его также проста - хранить всех админов из удаленной (mysql) базы в локальную (sqlite) базу данных. Т.е. при каждом подключении к базе, плагин будет локально хранить админов в базе. Если будет разрыв соединения с базой данных, плагин будет использовать админов из своей локальной базы. При подключении же к удаленной (mysql) базе данных, плагин будет просто обновлять локальную базу данных.

Такой способ имеет свои недостатки, например - если админ был удален из удаленной базы данных, но все еще доступен в локальной, но это лучше чем если вообще без админов.

@CrazyHackGUT
Copy link
Member

Offline Actions

Не понял вообще, что предлагается.

Offline Admins

Сейчас и так реализовано, но через бинарные файлы.

@BlackYuzia
Copy link
Contributor Author

BlackYuzia commented Feb 20, 2022

Сейчас и так реализовано, но через бинарные файлы.

Мб оно и так, но админка пропадает после:

sm plugins reload materialadmin;
sm_reloadadmins;

Не понял вообще, что предлагается.

ыдача банов и мутов даже если база недоступна. Сейчас происходит ошибка - Handler 0 Error (или чет типо такого)

@CrazyHackGUT
Copy link
Member

Выдача банов и мутов даже если база недоступна. Сейчас происходит ошибка - Handler 0 Error (или чет типо такого)

И так реализовано. Но если SQLite не подключился к моменту попытки выдачи бана - да, может возникать ошибка.

Мб оно и так, но админка пропадает после:

Потому что оно пытается загрузить админки сначала из базы. И только потом, если не удалось, должно пойти в файлы. Но проверю.

@BlackYuzia
Copy link
Contributor Author

И так реализовано. Но если SQLite не подключился к моменту попытки выдачи бана - да, может возникать ошибка.

Игрока если что, которого банят, даже не кикает. Так что или косяк плагина или эта функция не реализована вообще.

Примерно так должно отрабатывать:

  1. Запрос в mysql базу данных
  2. Если база недоступна сохраняем локально бан
  3. Кикаем забаненного игрока и не пускаем его на сервер
  4. Выводим сообщение Игрок был добавлен в локальный список банов так как нет доступа к удаленной базе данных

@BlackYuzia
Copy link
Contributor Author

И так реализовано. Но если SQLite не подключился к моменту попытки выдачи бана - да, может возникать ошибка.

Проверяй

При потери коннекта с бд сейчас следующее:

  • админы не работают (вообще, даже те что в кэше уже есть)
  • муты / баны не протестил до конца, но скорее всего тоже не работают

@CrazyHackGUT
Copy link
Member

админы не работают (вообще, даже те что в кэше уже есть)

Должно теперь работать.

@BlackYuzia
Copy link
Contributor Author

@CrazyHackGUT а блокировка ивента?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants