
Что исправлено и улучшено
Конфигурация
Плагин теперь использует встроенный механизм BasePluginConfig + IPluginConfig.
Ручной парсинг GameTimeBonus.json и проверки Contains("csgo") удалены. Конфиг создаётся и загружается автоматически.
Пути к файлам
Вместо Server.GameDirectory с костылями используется ModuleDirectory. Логи теперь лежат в {ModuleDirectory}/logs/.
Локализация
Убрана зависимость от Localizer, вызывавшая конфликты версий Microsoft.Extensions.Localization.Abstractions.
Текст сообщения о бонусе теперь задаётся прямо в конфиге: Settings.BonusMessage с поддержкой {amount}.
Подключение к MySQL
Соединение больше не висит бесконечно. Каждый запрос использует новое подключение из пула (пулинг включён).
Добавлены Pooling=true, MinimumPoolSize, MaximumPoolSize, ConnectionIdleTimeout.
Кодировка задаётся через CharacterSet = "utf8mb4".
Асинхронность
Начисление бонуса переведено в async Task с await using. Таймер не блокируется.
Совместимость
Исправлены ошибки компиляции:
добавлен обязательный метод OnConfigParsed
заменено Charset → CharacterSet
удалены ссылки на ILogger и Localizer