Ịmepụta Discord bot na .NET Core na ntinye aka na sava VPS

Ịmepụta Discord bot na .NET Core na ntinye aka na sava VPS

Ndewo, ndị bi na Khabrovsk!

Taa, ị ga-agụ otu akụkọ ga-agwa gị otu esi emepụta bot site na iji C # na .NET Core, na otu esi agba ya na sava dịpụrụ adịpụ.

Edemede a ga-enwe ndabere, ọkwa nkwadebe, ide ederede na ịnyefe bot na sava dịpụrụ adịpụ.

Enwere m olileanya na isiokwu a ga-enyere ọtụtụ ndị mbido aka.

prehistory

Ọ malitere otu abalị ụbịa na-enweghị ụra, nke m nọrọ na sava Discord. Ebe ọ bụ na m sonyeere ya n’oge na-adịbeghị anya, amalitere m ịmụ ya n’ime na n’èzí. N'ịchọpụtara ọwa ederede "Oghere", enwere m mmasị, meghere ya, wee chọta n'etiti onyinye ndị na-amasịghị m, nke a:

“Onye mmemme (bot onye nrụpụta)
Ihe choro:

  • ihe ọmụma nke asụsụ mmemme;
  • ike ịmụta onwe ya.

Achọ:

  • ike ịghọta koodu ndị ọzọ;
  • ihe ọmụma nke ọrụ DISCORD.

Ihe mgbaru ọsọ:

  • mmepe bot;
  • nkwado na mmezi nke bot.

Uru gị:

  • Ohere ịkwado na imetụta ọrụ ahụ masịrị gị;
  • Inweta ahụmahụ na-arụ ọrụ na otu;
  • Ohere igosi na melite nkà ndị dị ugbu a."


Nke a kpaliri mmasị m ozugbo. Ee, ha akwụghị ụgwọ maka ọrụ a, mana ha achọghị ọrụ ọ bụla n'aka gị, ọ gaghị adị oke oke na Pọtụfoliyo gị. Ya mere, m degaara onye nchịkwa ihe nkesa akwụkwọ, ọ gwara m ka m dee bot nke ga-egosi ọnụ ọgụgụ ndị ọkpụkpọ na World of Tanks.

Nkwadebe maka ogbo

Ịmepụta Discord bot na .NET Core na ntinye aka na sava VPS
Tụfuo
Tupu anyị amalite ide bot anyị, anyị kwesịrị ịmepụta ya maka Discord. Ị chọrọ:

  1. Banye na akaụntụ Discord njikọ
  2. Na taabụ "Ngwa", pịa bọtịnụ "ngwa ọhụrụ" wee kpọọ bot
  3. Nweta akara bot site na ịbanye na bot gị wee chọta taabụ "Bot" na listi "Ntọala".
  4. Chekwaa akara ngosi ebe

Ịlụ ọgụ

Ọzọkwa, ịkwesịrị ịmepụta ngwa na Wargaming ka ị nweta API Wargaming. Ihe niile dị mfe ebe a:

  1. Banye na akaụntụ Wargaming gị site na njikọ a
  2. Gaa na "My Applications" wee pịa bọtịnụ "Tinye ngwa ọhụrụ", nye aha ngwa ahụ wee họrọ ụdị ya.
  3. Na-echekwa ID ngwa

software

Enweelarị nnwere onwe ime nhọrọ. Ụfọdụ na-eji Visual Studio, ụfọdụ Rider, ụfọdụ dị ike n'ozuzu, na-ede koodu na Vim (mgbe niile, ezigbo ndị mmemme na-eji naanị ahụigodo, nri?). Agbanyeghị, iji zere imejuputa Discord API, ị nwere ike iji ọba akwụkwọ “DsharpPlus” C # na-akwadoghị. Ị nwere ike iwunye ya site na NuGet, ma ọ bụ site na ịnakọta isi mmalite n'onwe gị site na ebe nchekwa.

Maka ndị na-amaghị ma ọ bụ chefuo otu esi etinye ngwa sitere na NuGet.Ntuziaka maka Studio Visual

  1. Gaa na taabụ Project - Jikwaa ngwugwu NuGet;
  2. Pịa na nyochaa wee tinye "DsharpPlus" n'ọhịa ọchụchọ;
  3. Họrọ ma wụnye usoro;
  4. PROFIT!

Oge nkwadebe agwụla, ị nwere ike ịga n'ihu na-ede bot.

Ịde mgbagha

Ịmepụta Discord bot na .NET Core na ntinye aka na sava VPS

Anyị agaghị elele mgbagha ngwa ngwa niile; Aga m egosi gị otu esi arụ ọrụ na bot interception nke ozi yana otu esi arụ ọrụ na API Wargaming.

Ịrụ ọrụ na Discord bot na-apụta site na static async Task MainTask (eriri [] args);
Iji kpọọ ọrụ a, na isi ị ga-ede

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

Ọzọ, ịkwesịrị ibido bot gị:

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

Ebe akara bụ akara bot gị.
Mgbe ahụ, na-eji lambda, anyị na-ede iwu ndị dị mkpa na bot kwesịrị ime:

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

Ebe e.Author.Aha njirimara – nweta aha njirimara onye ọrụ.

N'ụzọ dị otú a, mgbe izipu ozi ọ bụla na-amalite na &, bot ga-ekele gị.

Na njedebe nke ọrụ a, ịkwesịrị ịdere echere discord.ConnectAsync(); ma chere Task.Delay(-1);

Nke a ga-enye ohere ka emee iwu n'azụ na-ejighị eriri isi.

Ugbu a ịkwesịrị ịghọta Wargaming API. Ihe niile dị mfe ebe a - dee arịrịọ CURL, nweta nzaghachi n'ụdị eriri JSON, wepụ data dị mkpa n'ebe ahụ wee gbanwee ya.

Ihe atụ nke ịrụ ọrụ na 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;
        }

Ntị! A naghị atụ aro ka ị chekwaa akara ngosi na ID ngwa na ederede doro anya! Opekempe, Discord na-amachibido ụdị akara ngosi ahụ mgbe ha rutere na Webụsaịtị World Wide; na nke kachasị, ndị mwakpo na-amalite iji bot ahụ.

Nyefee na sava VPS

Ịmepụta Discord bot na .NET Core na ntinye aka na sava VPS

Ozugbo ịmechara bot ahụ, ọ dị mkpa ka a kwado ya na ihe nkesa na-agba ọsọ 24/7 mgbe niile. Nke a bụ n'ihi na mgbe ngwa gị na-agba ọsọ, bot na-agbakwa ọsọ. Ozugbo ị gbanyụọ ngwa ahụ, bot gị na-arahụ ụra.

Enwere ọtụtụ sava VPS n'ụwa a, ma na Windows na Linux, mana n'ọtụtụ ọnọdụ, ọ dị ọnụ ala karịa ịnabata na Linux.

Na sava Discord ha kwadoro m vscale.io, m wee mepụta sava mebere na Ubuntu ozugbo wee bulite bot. Agaghị m akọwa otú saịtị a si arụ ọrụ, mana m ga-aga n'ihu ozugbo ịtọlite ​​​​bot.

Nke mbụ, ịkwesịrị ịwụnye ngwanrọ dị mkpa nke ga-agba ọsọ bot anyị, nke edere na .NET Core. A kọwara otu esi eme nke a ebe a.

Na-esote, ịkwesịrị bulite bot na Git - ọrụ dị ka GitHub na ihe ndị yiri ya - wee mechie ya na sava VPS, ma ọ bụ, n'ụzọ ndị ọzọ, budata bot gị. Biko mara na ị ga-enwe naanị console, enweghị GUI. Ma ọlị.

Mgbe ibudatara bot gị, ịkwesịrị ịmalite ya. Iji mee nke a, ịchọrọ:

  • Weghachite ndabere niile: dotnet weghachi
  • Wulite ngwa: dotnet build name_project.sln -c Mwepụta
  • Gaa na DLL wuru;
  • dotnet aha_of_file.dll

Ekele! Bot gị na-agba ọsọ. Otú ọ dị, bot, ọ dị mwute ikwu, na-eji njikwa ahụ, na ịhapụ ihe nkesa VPS adịghị mfe. Ọzọkwa, ọ bụrụ na emegharịrị ihe nkesa ahụ, ị ​​ga-amalite bot ọzọ. Enwere ụzọ abụọ pụọ na ọnọdụ ahụ. Ha niile metụtara mmalite na mmalite nkesa:

  • Tinye mmalite edemede na /etc/init.d
  • Mepụta ọrụ ga-amalite na mmalite.

Ahụghị m isi ihe ọ bụla na-ebi na ha n'ụzọ zuru ezu; a na-akọwa ihe niile n'ụzọ zuru ezu na ịntanetị.

Nchoputa

Obi dị m ụtọ na m weere ọrụ a. Nke a bụ ahụmahụ mbụ m na-emepụta bot, ma enwere m obi ụtọ na m nwetara ihe ọmụma ọhụrụ na C # na-arụ ọrụ na Linux.

Njikọ na ihe nkesa Discord. Maka ndị na-egwu egwuregwu Wargaming.
Njikọ na ebe nchekwa ebe Discord bot dị.
Njikọ na ebe nchekwa DsharpPlus.
Gwa anyị ihe ị ga-eme!

isi: www.habr.com

Tinye a comment