Abuuritaanka Discord bot ee NET Core oo la geynayo server-ka VPS

Abuuritaanka Discord bot ee NET Core oo la geynayo server-ka VPS

Hello Khabrovits!

Maanta waxaad arki doontaa maqaal ku tusi doona sida loo sameeyo bot adoo isticmaalaya C # ee .NET Core iyo sida loogu socodsiiyo server-ka fog.

Maqaalku wuxuu ka koobnaan doonaa asalka, heerka diyaarinta, qorista macquulka iyo u wareejinta bot server-ka fog.

Waxaan rajeynayaa in maqaalkani uu caawin doono dad badan oo bilaw ah.

prehistory

Dhammaantood waxay bilaabeen hal habeen oo dayrta oo aan hurdo lahayn oo aan ku qaatay server-ka Discord. Tan iyo markii aan dhowaan ku biiray, waxaan bilaabay inaan kor iyo hoos u barto isaga. Markii aan helay kanaalka qoraalka ee "Bannaanaan", waxaan noqday mid xiiseeya, furay, oo aan ka dhex helay dalabyada aan xiiseyneynin, kuwan:

"Barnaamijiyaha (Bot horumariye)
Shuruudaha:

  • aqoonta luqadaha barnaamijyada;
  • karti is-barasho.

Rajooyinka:

  • awoodda fahamka koodka dadka kale;
  • aqoonta shaqada DISCORD.

Hawlaha:

  • horumarinta bot;
  • taageerada iyo dayactirka bot.

Faa'iidadaada:

  • Fursad aad ku taageerto oo saameyn ku yeelato mashruuca aad jeceshahay;
  • Helitaanka khibrad shaqo kooxeed;
  • Fursad lagu muujinayo laguna horumarinayo xirfadaha jira.


Tani waxay isla markiiba i xiiso galisay. Haa, ma aysan bixin shaqadan, laakiin kama aysan dalban wax waajibaad ah, mana ahaan doonto mid xad dhaaf ah faylalka. Sidaa darteed, waxaan u qoray maamulka server-ka, wuxuuna iga codsaday inaan qoro bot taasoo tusin doonta tirakoobka ciyaartoyga ee World of Haamaha.

Marxaladda diyaarinta

Abuuritaanka Discord bot ee NET Core oo la geynayo server-ka VPS
Iska tuur
Kahor intaanan bilaabin qorista bot, waxaan u baahanahay inaan u abuurno Discord. Waxaad u baahan tahay:

  1. Gal xisaabta Discord link
  2. Tabka "Applications", guji "Codsiga Cusub" badhanka oo magac bot
  3. Hel calaamad bot adiga oo gelaya bot-kaaga oo aad ka heli karto tabka "Bot" ee liiska "Settings".
  4. Ku keydi calaamadda meel

Dagaal-gelinta

Sidoo kale, waxaad u baahan tahay inaad ku abuurto arji gudaha Wargaming si aad u gasho API Wargaming. Halkan, sidoo kale, wax walba waa sahlan yihiin:

  1. Soo gal akoonkaaga Wargaming by link this
  2. Waxaan tagnaa "My Applications" oo guji "Add a new Application" badhanka annagoo bixinayna magaca codsiga oo aanu dooranayno nooca uu yahay.
  3. Kaydinta aqoonsiga Codsiga

Software

Waxaa hore u jiray xorriyadda doorashada. Qof ayaa isticmaala Visual Studio, qof Rider, qof guud ahaan awood leh, oo ku qor koodka Vim (ka dib oo dhan, barnaamijyada dhabta ah waxay isticmaalaan kaliya kiiboodhka, sax?). Si kastaba ha ahaatee, si aan loo hirgelin Discord API, waxaad isticmaali kartaa maktabadda C # ee aan rasmiga ahayn "DsharpPlus". Waxaad ku rakibi kartaa mid ka mid ah NuGet, ama adiga oo naftaada ka dhisaya ilaha kaydka.

Kuwa aan garanayn ama illoobay sida loo rakibo codsiyada NuGet.Tilmaamaha istuudiyaha Visual

  1. Tag tab Mashruuca - Maamul xirmooyinka NuGet;
  2. Guji dib u eegista iyo goobta raadinta geli "DsharpPlus";
  3. Dooro oo rakib qaab-dhismeedka;
  4. DAKHLIGA!

Marxaladda diyaarinta waa dhammaatay, waxaad sii wadi kartaa qoritaanka bot-ka.

Qoritaanka macquulka ah

Abuuritaanka Discord bot ee NET Core oo la geynayo server-ka VPS

Ma tixgelin doono dhammaan macquulnimada codsiga, waxaan kaliya tusi doonaa sida loola shaqeeyo faragelinta farriimaha bot, iyo sida loola shaqeeyo API Wargaming.

La shaqaynta Discord bot waxay ku dhacdaa iyada oo loo marayo Hawsha MainTask async static (string[] args);
Si aad u wacdo shaqadan, gudaha ugu weyn waxaad u baahan tahay inaad iska diiwaan geliso

MainTask(args).ConfigureAwait(false).GetAwaiter().GetResult();

Marka xigta, waxaad u baahan tahay inaad bilawdo bot-kaaga:

discord = new DiscordClient(new DiscordConfiguration
{
    Token = token,
    TokenType = TokenType.Bot,
    UseInternalLogHandler = true,
    LogLevel = LogLevel.Debug
});

Meeday calaamaduhu ku taallo astaanta bot-kaagu.
Ka dib, iyada oo loo marayo lambda, waxaan ku qornaa amarrada lagama maarmaanka ah ee botku waa inuu fuliyo:

discord.MessageCreated += async e =>
{
    string message = e.Message.Content;
    if (message.StartsWith("&"))
    {
        await e.Message.RespondAsync(β€œHello, ” + e.Author.Username);
    }
};

Halka e.Author.Magaca adeegsaduhu uu helayo naanaysta isticmaalaha.

Sidan, markaad u dirto fariin kasta oo ka bilaabma &, botku wuu ku salaamayaa.

Dhammaadka shaqadan, waa inaad qortaa await discord.ConnectAsync(); oo sug Hawsha.Dib u dhac(-1);

Tani waxay kuu ogolaaneysaa inaad ku fuliso amarrada xagga dambe adoon qaadan dunta ugu weyn.

Hadda waxaan u baahanahay inaan la macaamilno Wargaming API. Wax walba halkan way ku fudud yihiin - qor codsiyada CURL, hel jawaab qaab xadhig JSON ah, ka soo saar xogta lagama maarmaanka ah halkaas oo ku samee wax-is-daba marin.

Tusaale la shaqaynta WargamingAPI

public Player FindPlayer(string searchNickname)
        {
            //https://api.worldoftanks.ru/wot/account/list/?application_id=y0ur_a@@_id_h3r3search=nickname
            urlRequest = resourceMan.GetString("url_find_player") + appID + "&search=" + searchNickname;
            Player player = null;
            string resultResponse = GetResponse(urlRequest);
            dynamic parsed = JsonConvert.DeserializeObject(resultResponse);

            string status = parsed.status;
            if (status == "ok")
            {
                int count = parsed.meta.count;
                if (count > 0)
                {
                    player = new Player
                    {
                        Nickname = parsed.data[0].nickname,
                        Id = parsed.data[0].account_id
                    };
                }
                else
                {
                    throw new PlayerNotFound("Π˜Π³Ρ€ΠΎΠΊ Π½Π΅ Π½Π°ΠΉΠ΄Π΅Π½");
                }
            }
            else
            {
                string error = parsed.error.message;
                if (error == "NOT_ENOUGH_SEARCH_LENGTH")
                {
                    throw new PlayerNotFound("ΠœΠΈΠ½ΠΈΠΌΡƒΠΌ Ρ‚Ρ€ΠΈ символа трСбуСтся");
                }
                else if (error == "INVALID_SEARCH")
                {
                    throw new PlayerNotFound("НСвСрный поиск");
                }
                else if (error == "SEARCH_NOT_SPECIFIED")
                {
                    throw new PlayerNotFound("ΠŸΡƒΡΡ‚ΠΎΠΉ Π½ΠΈΠΊΠ½Π΅ΠΉΠΌ");
                }
                else
                {
                    throw new Exception("Something went wrong.");
                }
            }

            return player;
        }

Fiiro gaar ah! Si adag looguma talinayo in lagu kaydiyo dhammaan calaamadaha iyo aqoonsiga codsiga qoraal cad! Ugu yaraan, Discord waxay mamnuucday calaamadaha noocaas ah marka ay soo galaan shabakadda caalamiga ah, iyo ugu badnaan, bot-ka wuxuu bilaabmaa inuu isticmaalo weeraryahannada.

U dir VPS - server-ka

Abuuritaanka Discord bot ee NET Core oo la geynayo server-ka VPS

Marka aad dhammayso bot-ka, waxay u baahan tahay in lagugu martigeliyo server-ka si joogto ah u shaqeeya 24/7. Tani waxay sabab u tahay xaqiiqda ah in marka codsigaagu socdo, botku sidoo kale wuu socdaa. Isla marka aad damiso codsiga, bot-kaagu sidoo kale wuu seexdaa.

Qaar badan oo ka mid ah server-yada VPS ayaa ka jira adduunkan, labadaba Windows iyo Linux, si kastaba ha ahaatee, inta badan, aad bay u jaban tahay in lagu martiqaado Linux.

Adeegga Discord, waxaa la igula taliyay vscale.io, isla markiiba waxaan ku abuuray server-ka Ubuntu oo aan ku dhejiyay bot-ka. Ma qeexi doono sida goobtani u shaqeyso, laakiin waxay si toos ah u aadi doontaa goobaha bot.

Ugu horreyntii, waxaad u baahan tahay inaad rakibto software-ka lagama maarmaanka ah ee ku shaqeyn doona bot-kayaga oo ku qoran .NET Core. Sida loo sameeyo halkan ayaa lagu sharaxay.

Marka xigta, waxaad u baahan tahay inaad ku dhejiso bot-ka adeegga Git, sida GitHub iyo wixii la mid ah, oo aad ku xirto server-ka VPS, ama soo dejiso bot-kaaga siyaabo kale. Fadlan ogow inaad lahaan doonto kaliya console, malaha GUI. Haba yaraatee.

Kadib markaad soo dejiso bot-kaaga, waxaad u baahan tahay inaad socodsiiso. Tan, waxaad u baahan tahay:

  • Soo celi dhammaan ku tiirsanaanta: soo celinta dotnet
  • Dhis codsiga: dotnet dhiso name_project.sln -c Siideynta
  • Tag DLL la dhisay;
  • dotnet name_of_file.dll

Hambalyo! Botkaaga ayaa ordaya Si kastaba ha ahaatee, bot-ku, nasiib darro, wuxuu ku jiraa konsole, mana fududa in laga baxo server-ka VPS. Sidoo kale, haddii ay dhacdo in server-ku dib u bilaabo, waa inaad u bilowdo bot si cusub. Waxaa jira dhowr siyaabood oo looga baxo xaaladda. Dhammaantood waxay la xiriiraan bilawga bilowga serverka:

  • Kudar qoraalka orodka /etc/init.d
  • Abuur adeeg ka shaqayn doona bilowga

Uma arko barta ku noolaanshaha iyaga si faahfaahsan, wax walba waxaa lagu sifeeyaa si faahfaahsan oo ku filan internetka.

natiijooyinka

Waan ku faraxsanahay inaan qabtay hawshan. Tani waxay ahayd waayo-aragnimadaydii ugu horreysay ee horumarinta bot, waanan ku faraxsanahay inaan aqoon cusub ka helay C #, oo aan la shaqeeyo Linux.

Ku xidhka server-ka Discord. Kuwa ciyaara ciyaaraha Wargaming.
Isku xirka kaydka uu ku yaal Discord bot.
Ku xidhka kaydka DsharpPlus
Qalbadda

Source: www.habr.com

Add a comment