Skip to content
This repository was archived by the owner on Jan 25, 2025. It is now read-only.

Commit 51018ea

Browse files
committed
fix: LagSpike, plugin not load fixed fully
1 parent 09ed72d commit 51018ea

File tree

3 files changed

+13
-31
lines changed

3 files changed

+13
-31
lines changed

src/Plugin/Plugin.cs

Lines changed: 1 addition & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -46,10 +46,7 @@ public void OnConfigParsed(PluginConfig config)
4646
userId: databaseSettings.Username,
4747
password: databaseSettings.Password,
4848
port: databaseSettings.Port,
49-
sslMode: databaseSettings.Sslmode,
50-
usePooling: true,
51-
minPoolSize: 2,
52-
maxPoolSize: 2);
49+
sslMode: databaseSettings.Sslmode);
5350

5451
//** ? Save Config */
5552

@@ -89,7 +86,6 @@ public override void Load(bool hotReload)
8986
//** ? Load Player Caches */
9087

9188
LoadAllPlayersCache();
92-
Database.Instance.AdjustDatabasePooling();
9389

9490
GameRules = Utilities.FindAllEntitiesByDesignerName<CCSGameRulesProxy>("cs_gamerules").First().GameRules;
9591
}

src/Plugin/PluginBasics.cs

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -160,7 +160,6 @@ public void Initialize_Events()
160160
{
161161
AddTimer(1.0f, () =>
162162
{
163-
Database.Instance.AdjustDatabasePooling();
164163
GameRules = Utilities.FindAllEntitiesByDesignerName<CCSGameRulesProxy>("cs_gamerules").First().GameRules;
165164
});
166165
});

src/Plugin/PluginDatabase.cs

Lines changed: 12 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -14,26 +14,12 @@ public sealed class Database
1414

1515
private Database() { }
1616

17-
public void Initialize(string server, string database, string userId, string password, int port = 3306, string sslMode = "None", bool usePooling = true, uint minPoolSize = 10, uint maxPoolSize = 50)
17+
public void Initialize(string server, string database, string userId, string password, int port = 3306, string sslMode = "None")
1818
{
19-
connectionString = BuildConnectionString(server, database, userId, password, port, sslMode, usePooling, minPoolSize, maxPoolSize);
19+
connectionString = BuildConnectionString(server, database, userId, password, port, sslMode);
2020
}
2121

22-
public void AdjustDatabasePooling()
23-
{
24-
if (connectionString == null)
25-
throw new InvalidOperationException("Database has not been initialized");
26-
27-
var builder = new MySqlConnectionStringBuilder(connectionString)
28-
{
29-
MinimumPoolSize = (uint)Math.Max(5, Server.MaxPlayers / 2.5),
30-
MaximumPoolSize = (uint)Math.Max(10, Server.MaxPlayers + 1),
31-
};
32-
33-
connectionString = builder.ConnectionString;
34-
}
35-
36-
private static string BuildConnectionString(string server, string database, string userId, string password, int port, string sslMode, bool usePooling, uint minPoolSize, uint maxPoolSize)
22+
private static string BuildConnectionString(string server, string database, string userId, string password, int port, string sslMode)
3723
{
3824
var builder = new MySqlConnectionStringBuilder
3925
{
@@ -43,9 +29,6 @@ private static string BuildConnectionString(string server, string database, stri
4329
Password = password,
4430
Port = (uint)port,
4531
SslMode = Enum.Parse<MySqlSslMode>(sslMode, true),
46-
Pooling = usePooling,
47-
MinimumPoolSize = 10,
48-
MaximumPoolSize = 24,
4932
};
5033

5134
return builder.ConnectionString;
@@ -79,12 +62,16 @@ public async Task ExecuteNonQueryAsync(string query, params MySqlParameter[] par
7962

8063
public async Task<MySqlDataReader> ExecuteReaderAsync(string query, params MySqlParameter[] parameters)
8164
{
82-
var connection = new MySqlConnection(connectionString);
83-
await connection.OpenAsync();
65+
using (var connection = new MySqlConnection(connectionString))
66+
{
67+
await connection.OpenAsync();
8468

85-
var command = new MySqlCommand(query, connection);
86-
command.Parameters.AddRange(parameters);
87-
return await command.ExecuteReaderAsync(CommandBehavior.CloseConnection);
69+
using (var command = new MySqlCommand(query, connection))
70+
{
71+
command.Parameters.AddRange(parameters);
72+
return await command.ExecuteReaderAsync(CommandBehavior.CloseConnection);
73+
}
74+
}
8875
}
8976

9077
public async Task ExecuteWithTransactionAsync(Func<MySqlConnection, MySqlTransaction, Task> executeActions)

0 commit comments

Comments
 (0)