حزم NuGet وقاعدة البيانات في إضافة CounterStrikeSharp
كثير من الإضافات المفيدة تخزّن بيانات: حظر وإحصاءات ورتب. لذلك تضيف حزمة NuGet إلى المشروع، والقاعدة الأهم ألّا تحجب اللعبة وأنت تنتظر قاعدة البيانات. يغطي هذا الدليل الأمرين بمثال Dapper و MySqlConnector.
أضف الحزم
تُدرج حزم NuGet في ملف المشروع. يختصر Dapper الاستعلامات، ويتحدث MySqlConnector مع MariaDB و MySQL. ينزّلها مترجمنا نيابةً عنك أثناء البناء.
<ItemGroup>
<PackageReference Include="CounterStrikeSharp.API" Version="1.0.*" />
<PackageReference Include="Dapper" Version="2.*" />
<PackageReference Include="MySqlConnector" Version="2.*" />
</ItemGroup>
ما يحدث عند الترجمة
ينتج البناء ملف DLL لإضافتك وبجانبه ملفات DLL للحزم التي تحتاجها. أما الملفات التي يتضمنها CounterStrikeSharp أصلًا فتوضع منفصلة في مجلد آخر حتى لا تنسخها مرتين.
ما تنسخه إلى الخادم
انسخ مجلد الإضافة، مع ملفات DLL الخاصة بالحزم بداخله، إلى مجلد plugins في خادمك. لا تنسخ مجلد dependencies لأن الخادم يملك هذه الملفات أصلًا، ونسخة ثانية قد تسبب تعارضات.
نفّذ استعلامًا دون تجميد اللعبة
تعمل اللعبة على خيط رئيسي واحد. إن انتظرت قاعدة بيانات هناك يتقطع الخادم كله. نفّذ الاستعلام داخل Task.Run، وعندما تحتاج إلى لمس اللعبة مجددًا فعُد إلى الخيط الرئيسي عبر 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);
});
});
}
احتفظ بسلسلة الاتصال في الإعدادات
لا تكتب العنوان والمستخدم وكلمة المرور في الشيفرة. ضع سلسلة الاتصال في إعدادات الإضافة كما في دليل الإعدادات لدينا، ليستخدم كل مالك خادم قاعدة بياناته الخاصة.
حزم لا مكان لها في إضافة
بعض الحزم كبيرة جدًا أو لم تُصمَّم لتعمل داخل خادم لعبة، مثل أطر الويب كـ ASP.NET. فضّل المكتبات الصغيرة، وإذا لم تُحمَّل حزمة فتحقق مما إذا كانت تحتاج إلى ملفات أصلية (native) مفقودة.
اختبر قبل الإطلاق
جرّب الإضافة أولًا على خادم اختبار بقاعدة بيانات اختبار. تحقق من إنشاء الجداول، ومن أن فشل الاتصال لا يُسقط الإضافة، ومن أن السجل يعطي رسالة واضحة عندما تكون قاعدة البيانات متوقفة.
هل كان هذا الدليل مفيدًا؟
Barlap من أجل المجتمع.