MySQL: Online
Load: Low
Sandbox: Ready

CounterStrikeSharp eklentisinde NuGet paketleri ve veritabanı

Birçok yararlı eklenti veri saklar: yasaklar, istatistikler, rütbeler. Bunun için projeye bir NuGet paketi eklersiniz ve en önemli kural, veritabanını beklerken oyunu engellememektir. Bu rehber ikisini de Dapper ve MySqlConnector örneğiyle anlatır.

1

Paketleri ekleyin

NuGet paketleri proje dosyasında listelenir. Dapper sorguları kısaltır, MySqlConnector ise MariaDB ve MySQL ile konuşur. Derleyicimiz derleme sırasında bunları sizin için indirir.

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

Derleme sırasında ne olur

Derleme, eklenti DLL’inizi ve yanında eklentinin ihtiyaç duyduğu paketlerin DLL’lerini üretir. CounterStrikeSharp’ın zaten içerdiği dosyalar, iki kez kopyalamayasınız diye başka bir klasöre ayrılır.

3

Sunucuya neyi kopyalamalı

Eklenti klasörünü, içindeki paket DLL’leriyle birlikte sunucunuzun plugins klasörüne kopyalayın. dependencies klasörünü kopyalamayın; çünkü sunucuda bu dosyalar zaten var ve ikinci bir kopya çakışmalara yol açabilir.

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

Oyunu dondurmadan sorgu çalıştırın

Oyun tek bir ana iş parçacığında çalışır. Orada veritabanını beklerseniz tüm sunucu takılır. Sorguyu Task.Run içinde çalıştırın; oyuna yeniden dokunmanız gerektiğinde Server.NextFrame ile ana iş parçacığına dönün.

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

Bağlantı dizesini yapılandırmada tutun

Adresi, kullanıcıyı ve parolayı koda yazmayın. Yapılandırma rehberimizdeki gibi bağlantı dizesini eklentinin yapılandırmasına koyun; böylece her sunucu sahibi kendi veritabanını kullanır.

6

Eklentiye ait olmayan paketler

Bazı paketler çok büyüktür ya da bir oyun sunucusunun içinde yaşamak için yapılmamıştır; ASP.NET gibi web framework’leri buna örnektir. Küçük kütüphaneleri tercih edin ve bir paket yüklenmezse eksik yerel dosyalara ihtiyaç duyup duymadığına bakın.

Eklentinin ihtiyaç duyduğundan fazla yetkisi olan bir veritabanı hesabı kullanmayın. Yalnızca kendi tablolarına dokunabilen bir kullanıcı oluşturun.
7

Canlıya almadan önce test edin

Eklentiyi önce bir test veritabanıyla test sunucusunda deneyin. Tabloların oluştuğunu, başarısız bir bağlantının eklentiyi çökertmediğini ve veritabanı kapalıyken günlüğün açık bir mesaj verdiğini kontrol edin.

Bu rehber işinize yaradı mı?

Sayfa 0.011 saniyede oluşturuldu
CounterStrikeSharp Web Compiler V1.0 - Şununla yapıldı tarafından RomaniaBarlap topluluk için.