Пора банить нарушителей прилюдно!
Описание
Этот проект значительно повысит доверие к команде “бан” среди обычных игроков. Теперь им нужно будет предоставить доказательства того, что бан был справедливым (в противном случае, обвинитель может быть забанен сам!
).
Когда игрок банит нарушителя , ему дается определённое время на предоставление доказательств нарушения. Затем модераторы подключаются, чтобы подтвердить или отклонить бан на той же платформе.
За помощь в поддержании порядка игрок может получить заслуженную награду .
Команды
Команды | Пермишен | Описание |
---|---|---|
/bban <игрок: str> <причина: str> | banedetta.ban | Заблокировать игрока. Посты не будут созданы если бан был от консоли, админа или оператора. |
/unban <игрок: str> | banedetta.unban | Разблокировать игрока, с удалением всех постов. |
Платформы
Из коробки предоставлены плагины для интеграции с VK и Telegram, но также плагин позволяет создавать собственные интеграционные модули для других платформ.
Разница между v2
Полный отказ от сторонников, без никаких Python и отдельных выделенных серверов. Теперь все пост менеджеры отдельных платформ являются модульными плагинами для главного плагина. Так же добавлен класс для создания своих модульных плагинов. В добавок мелкие фиксы, рефакторинг и прочее (коммиты в гитхабе не смотрите).
Для разработчиков
Вы можете создать собственный плагин для интеграции с платформой, расширив класс PostPlugin.php
.
<?php
namespace Example\Plugin;
use Taskov1ch\BANedetta\BANedetta;
use Taskov1ch\BANedetta\posts\PostPlugin;
class CustomPlatform extends PostPlugin // PostPlugin расширяет PluginBase
{
public function onEnable(): void
{
BANedetta::getInstance()->getPostsManager()->registerPostPlugin($this); // Регистрируем этот плагин в системе BANedetta
}
public function onRegistered(): void
{
// Этот метод вызывается после успешной регистрации плагина в системе BANedetta
}
public function getDatabaseQueriesMap(): array
{
return [
"mysql" => "path/to/mysql.sql",
"sqlite" => "path/to/sqlite.sql"
]; // Возвращает карту SQL-запросов (путь относительно директории ресурсов плагина, как в libasynql, при регистрации класса для DataConnector)
}
public function createPost(string $banned, string $by, string $reason, int $timeLimit): void
{
// Этот метод вызывается, когда игрок забанен и нужно создать посты.
// Логика создания постов здесь
}
public function removePost(string $banned): void
{
// Этот метод вызывается, когда игрок разбанен и нужно удалить ложные посты.
// Логика удаления постов здесь
}
public function confirmed(string $banned): void
{
// Этот метод вызывается, когда модератор подтвердил бан на одной из платформ, нужно обновить посты.
// Логика обновления поста на "Подтверждено" здесь
}
public function notConfirmed(string $banned): void
{
// Этот метод вызывается, когда модератор отклонил бан на одной из платформ, нужно обновить посты.
// Логика обновления поста на "Не подтверждено" здесь
}
}
Внимание!
Если вы нашли баг, недочёт или что-то похуже, пожалуйста, сообщите об этом в ISSUES. Это не займёт много времени, а я быстро всё исправлю