هذا الدليل للبوتات المكتوبة بلغة C# أو بلغة أخرى من لغات .NET، مثل البوتات المبنية بـ Discord.Net أو DSharpPlus.
اختر النوع
- افتح سيرفرك في لوحة التحكم، وابقَ في نظرة عامة واضغط تعديل نوع الخادم.
- اختر .NET Bot. تغيير النوع يعيد تثبيت السيرفر ويحذف ملفاته افتراضيًا، لذا افعل ذلك على سيرفر جديد. راجع كيف تنقل بوتك بين Node.js وPython وJava.
- في الإعدادات، صورة Docker تستطيع اختيار إصدار .NET (الافتراضي 8، ويتوفر 6 و9 و10).
مثال لمشروع صغير
MyBot.csproj
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<OutputType>Exe</OutputType>
<TargetFramework>net8.0</TargetFramework>
<ImplicitUsings>enable</ImplicitUsings>
<Nullable>enable</Nullable>
</PropertyGroup>
<ItemGroup>
<PackageReference Include="Discord.Net" Version="3.*" />
</ItemGroup>
</Project>
Program.cs
using Discord;
using Discord.WebSocket;
var client = new DiscordSocketClient(new DiscordSocketConfig { GatewayIntents = GatewayIntents.Guilds });
client.Log += msg => { Console.WriteLine(msg); return Task.CompletedTask; };
await client.LoginAsync(TokenType.Bot, Environment.GetEnvironmentVariable("DISCORD_TOKEN"));
await client.StartAsync();
await Task.Delay(Timeout.Infinite);
طريقتان للنشر
ارفع المشروع. في Files ارفع ملف .csproj وملفات المصدر (دون المجلدين bin وobj). عند كل تشغيل يبني السيرفر مشروعك بالأمر dotnet publish ثم يشغّله. أول بناء ينزّل حزم NuGet، فيستغرق دقيقة. اترك المشروع أو dll فارغًا لاستخدام ملف .csproj الوحيد في المجلد الرئيسي، أو اكتب اسم الملف إذا كان هناك أكثر من واحد.
ارفع الملفات المنشورة. نفّذ dotnet publish -c Release على حاسوبك وارفع محتويات مجلد المخرجات. اضبط المشروع أو dll على اسم ملف .dll، مثل MyBot.dll. يبدأ أسرع ويحتاج ذاكرة أقل.
تفضّل استخدام git؟ راجع كيف تنشر بوت Discord وتحدّثه من GitHub.
الرمز والتشغيل
الصق رمزك في رمز بوت Discord. يقرؤه كودك كمتغير البيئة DISCORD_TOKEN. افتح Console وابدأ التشغيل. وعندما تعرض Console أن البوت اتصل، يكون قد أصبح متصلًا.
من المفيد أن تعرف
- البناء يستهلك ذاكرة. قد يحتاج مشروع بحزم كثيرة إلى باقة بذاكرة 1 GB أو أكثر أثناء البناء؛ أما ملف
.dllمنشور فيحتاج أقل بكثير. راجع كم RAM يحتاج بوت Discord. - خطأ في البناء يوقف السيرفر مع رسائل المترجم في Console. أصلحها ثم اضغط تشغيل.
- اجعل
TargetFrameworkمطابقًا لإصدار .NET الذي اخترته (net8.0لـ .NET 8).





