MySQL: Online
Load: High
Sandbox: Ready

NuGet paketi i baza podataka u CounterStrikeSharp plaginu

Mnogi korisni plagini čuvaju podatke: banove, statistiku, rangove. Za to u projekat dodajete NuGet paket, a najvažnije pravilo je da ne blokirate igru dok čekate bazu podataka. Ovaj vodič pokriva oba, na primeru Dapper-a i MySqlConnector-a.

1

Dodajte pakete

NuGet paketi se navode u projektnom fajlu. Dapper skraćuje upite, a MySqlConnector komunicira sa MariaDB-om i MySQL-om. Naš kompajler ih preuzima umesto vas prilikom kompajliranja.

<ItemGroup>
  <PackageReference Include="CounterStrikeSharp.API" Version="1.0.*" />
  <PackageReference Include="Dapper" Version="2.*" />
  <PackageReference Include="MySqlConnector" Version="2.*" />
</ItemGroup>
2

Šta se dešava pri kompajliranju

Kompajliranje pravi DLL vašeg plagina i pored njega DLL-ove paketa koji su mu potrebni. Fajlovi koje CounterStrikeSharp već sadrži odvojeni su u drugi folder, da ih ne biste kopirali dvaput.

3

Šta kopirati na server

Kopirajte folder plagina, sa DLL-ovima paketa unutra, u folder plugins na serveru. Ne kopirajte folder dependencies, jer server već ima te fajlove, a druga kopija može da izazove sukobe.

YourPlugin-Release.zip
YourPlugin
YourPlugin.dll
Dapper.dll
MySqlConnector.dll
dependencies
Files already provided by CounterStrikeSharp
4

Izvršite upit bez zamrzavanja igre

Igra radi na jednoj glavnoj niti. Ako tamo čekate bazu podataka, ceo server zastaje. Izvršite upit u Task.Run, a kada ponovo treba da dodirnete igru, vratite se na glavnu nit pomoću Server.NextFrame.

using CounterStrikeSharp.API;
using Dapper;
using Microsoft.Extensions.Logging;
using MySqlConnector;

public void CountPlayers()
{
    Task.Run(async () =>
    {
        await using var connection = new MySqlConnection(Config.ConnectionString);        var count = await connection.ExecuteScalarAsync<int>("SELECT COUNT(*) FROM players");
        Server.NextFrame(() =>        {
            Logger.LogInformation("Players in the database: {Count}", count);
        });
    });
}
5

Čuvajte connection string u konfiguraciji

Ne upisujte adresu, korisnika i lozinku u kod. Stavite connection string u konfiguraciju plagina, kao u našem vodiču o konfiguraciji, da bi svaki vlasnik servera koristio svoju bazu.

6

Paketi koji ne pripadaju plaginu

Neki paketi su preveliki ili nisu napravljeni da žive unutar igračkog servera, na primer veb framework-ovi poput ASP.NET-a. Birajte male biblioteke, a ako se paket ne učita, proverite da li mu trebaju izvorni (native) fajlovi koji nedostaju.

Ne koristite nalog baze sa više prava nego što plaginu treba. Napravite korisnika koji može da dira samo sopstvene tabele.
7

Testirajte pre puštanja u rad

Prvo isprobajte plagin na probnom serveru sa probnom bazom. Proverite da li se tabele prave, da li neuspela veza ne ruši plagin i da li log daje jasnu poruku kad baza nije dostupna.

Da li vam je ovaj vodič bio koristan?

Stranica generisana za 0.013 sekundi
CounterStrikeSharp Web Compiler V1.0 - Napravljeno sa od RomaniaBarlap za zajednicu.