Compare commits

..

1 Commits

Author SHA1 Message Date
Eduardo Leonardo
5325caa970 Merge 76bcb5bb85 into 10a4691429 2025-10-20 15:57:54 +00:00
2 changed files with 167 additions and 168 deletions

View File

@@ -4,18 +4,17 @@ namespace WeaponPaints
{ {
public class Database public class Database
{ {
private readonly Func<IDatabaseConnection> _connectionFactory; private readonly IDatabaseConnection _connection;
public Database(Func<IDatabaseConnection> connectionFactory) public Database(IDatabaseConnection connection)
{ {
_connectionFactory = connectionFactory; _connection = connection;
} }
public async Task<IDatabaseConnection> GetConnectionAsync() public async Task<IDatabaseConnection> GetConnectionAsync()
{ {
var connection = _connectionFactory(); await _connection.OpenAsync();
await connection.OpenAsync(); return _connection;
return connection;
} }
} }
} }

View File

@@ -113,8 +113,8 @@ public partial class WeaponPaints : BasePlugin, IPluginConfig<WeaponPaintsConfig
return; return;
} }
// Criar factory de conexão baseada no tipo de banco // Criar conexão baseada no tipo de banco
Func<IDatabaseConnection> connectionFactory; IDatabaseConnection connection;
if (config.DatabaseType.ToLower() == "mysql") if (config.DatabaseType.ToLower() == "mysql")
{ {
var builder = new MySqlConnectionStringBuilder var builder = new MySqlConnectionStringBuilder
@@ -127,7 +127,7 @@ public partial class WeaponPaints : BasePlugin, IPluginConfig<WeaponPaintsConfig
Pooling = true, Pooling = true,
MaximumPoolSize = 640, MaximumPoolSize = 640,
}; };
connectionFactory = () => new MySQLConnection(builder.ConnectionString, Logger); connection = new MySQLConnection(builder.ConnectionString, Logger);
} }
else // SQLite else // SQLite
{ {
@@ -142,10 +142,10 @@ public partial class WeaponPaints : BasePlugin, IPluginConfig<WeaponPaintsConfig
var connectionString = $"Data Source={dbPath}"; var connectionString = $"Data Source={dbPath}";
Logger.LogInformation($"[WeaponPaints] SQLite database path: {dbPath}"); Logger.LogInformation($"[WeaponPaints] SQLite database path: {dbPath}");
connectionFactory = () => new SQLiteConnection(connectionString, Logger); connection = new SQLiteConnection(connectionString, Logger);
} }
Database = new Database(connectionFactory); Database = new Database(connection);
Utility.Config = config; Utility.Config = config;
Task.Run(async () => await Utility.CheckDatabaseTables()); Task.Run(async () => await Utility.CheckDatabaseTables());