Te hanga i te karetao Discord i runga i te .NET Core me te tuku ki te tūmau VPS

Te hanga i te karetao Discord i runga i te .NET Core me te tuku ki te tūmau VPS

Kia ora Khabrovites!

I tenei ra ka kite koe i tetahi tuhinga e whakaatu ana ki a koe me pehea te hanga karetao ma te whakamahi i te C # i runga i te .NET Core me te whakahaere i runga i te tūmau mamao.

Ko te tuhinga he papamuri, he waahi whakarite, tuhi arorau me te whakawhiti i te karetao ki tetahi tūmau mamao.

Te ti'aturi nei au ka awhina tenei tuhinga ki te maha o nga kaitoi.

prehistory

I timata katoa i tetahi po ngahuru kore moe i noho ahau i runga i te tūmau Discord. I te mea kua uru atu ahau ki a ia, ka timata ahau ki te ako ia ia ki runga, ki raro. I te kitenga o te hongere kuputuhi "Waahi", ka aro ahau, ka whakatuwherahia, ka kitea i roto i nga tuku kaore i pai ki a au, ko enei:

"Kaiwhakahaere (kaiwhakawhanake bot)
Whakaritenga:

  • te mohio ki nga reo whakahoahoa;
  • te kaha ki te ako whaiaro.

Hiahia:

  • te kaha ki te mohio ki te waehere a etahi atu;
  • te mohio ki te mahi DISCORD.

Ngā Whāinga:

  • whanaketanga bot;
  • tautoko me te tiaki i te bot.

To painga:

  • Te whai waahi ki te tautoko me te whakaawe i te kaupapa e pai ana koe;
  • Te whai wheako ki te mahi i roto i te roopu;
  • Te whai waahi ki te whakaatu me te whakapai ake i nga pukenga o naianei.


I aro tonu tenei ki ahau. Ae, kaore ratou i utu mo tenei mahi, engari kaore i tono mai i a koe etahi herenga, kaore hoki e nui ake i roto i te putea. Na reira, i tuhi ahau ki te kaiwhakahaere o te tūmau, a ka tono mai ia ki ahau kia tuhia he karetao hei whakaatu i nga tatauranga a te kaitakaro ki te Ao o Tanks.

Te waahi takawaenga

Te hanga i te karetao Discord i runga i te .NET Core me te tuku ki te tūmau VPS
Whakakore
I mua i to tiimata ki te tuhi i ta maatau bot, me hanga e maatau mo Discord. Me:

  1. Takiuru ki te putea Discord hono
  2. I roto i te ripa "Nga tono", paatohia te paatene "Taupānga Hou" ka whakaingoatia te karetao
  3. Tikina he tohu karetao ma te takiuru ki to karetao me te kimi i te ripa "Bot" i te rarangi "Tautuhinga".
  4. Tiakina te tohu ki tetahi wahi

Pouakaora

Ano, me hanga e koe he tono i roto i te Wargaming kia uru atu ki te Wargaming API. I konei hoki, he ngawari nga mea katoa:

  1. Takiuru ki to putea Wargaming na tenei hono
  2. Ka haere matou ki "Aku tono" ka paato i te paatene "Taapirihia he tono hou", ka hoatu te ingoa o te tono me te kowhiri i tona momo.
  3. Tiaki i te Taupānga ID

pūmanawa

Te vai noa ra te tiamâraa no te maitiraa. Ka whakamahi tetahi i te Visual Studio, tetahi Rider, he kaha te tangata, ka tuhi i te waehere ki Vim (i muri i nga mea katoa, ka whakamahia e te hunga hötaka pono te papapātuhi, tika?). Heoi, kia kore ai e whakatinana i te Discord API, ka taea e koe te whakamahi i te whare pukapuka C# kore mana "DSharpPlus". Ka taea e koe te whakauru mai i a NuGet, ma te hanga ranei i nga puna mai i te putunga.

Mo te hunga kaore e mohio, kua wareware ranei ki te whakauru i nga tono mai i NuGet.Tohutohu mo Visual Studio

  1. Haere ki te ripa Kaupapa - Manage NuGet Packages;
  2. Paatohia te arotake me te waahi rapu tomo "DSharpPlus";
  3. Tīpakohia ka tāuta anga;
  4. PROFIT!

Kua mutu te waahi whakarite, ka taea e koe te haere tonu ki te tuhi i te bot.

Te tuhi arorau

Te hanga i te karetao Discord i runga i te .NET Core me te tuku ki te tūmau VPS

E kore matou e whakaaro ki te arorau katoa o te tono, ka whakaatu noa ahau me pehea te mahi me te haukoti o nga karere na te bot, me pehea te mahi me te Wargaming API.

Ko te mahi tahi me te karetao Discord ka puta mai i roto i te Taumahi async pateko MainTask(string[] args);
Hei karanga i tenei mahi, i roto i te Main me rehita koe

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

Panuku, me arawhiti koe i to bot:

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

Kei hea te tohu te tohu o to bot.
Na, na roto i te lambda, ka tuhia e matou nga whakahau e tika ana kia mahia e te bot:

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

Kei hea e.Author.Username te ingoa ingoa o te kaiwhakamahi.

Ma tenei ara, ka tukuna e koe tetahi karere ka tiimata me te &, ka mihi te karetao ki a koe.

I te mutunga o tenei mahi, me tuhi koe await discord.ConnectAsync(); ka tatari i te Mahi.Taroa(-1);

Ma tenei ka taea e koe te whakahaere i nga whakahau i te papamuri me te kore e tango i te miro matua.

Inaianei me mahi maatau ki te Wargaming API. He ngawari nga mea katoa i konei - tuhia nga tono CURL, tikina he whakautu ki te ahua o te aho JSON, toia mai nga raraunga e tika ana mai i reira ka mahia he raweke ki runga.

He tauira mo te mahi tahi me 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;
        }

Te aro! Kaore i te tino tūtohutia kia penapena nga tohu katoa me nga ID tono i roto i nga tuhinga maamaa! I te iti rawa, ka whakakorehia e Discord nga tohu penei ina uru ana ratou ki te whatunga o te ao, a, i te nui rawa atu, ka timata te bot ki te whakamahi i nga kaiwhaiwhai.

Tukuna ki VPS - tūmau

Te hanga i te karetao Discord i runga i te .NET Core me te tuku ki te tūmau VPS

Ka oti ana koe ki te karetao, me manaaki i runga i te tūmau e mahi tonu ana 24/7. Ko te mea tenei i te wa e rere ana to tono, kei te rere ano te bot. Ka whakawetohia e koe te tono, ka moe ano to karetao.

He maha nga kaiwhakarato VPS kei tenei ao, i runga i te Matapihi me te Linux, heoi, i te nuinga o te waa, he iti ake te utu ki te manaaki i runga i te Linux.

I runga i te tūmau Discord, i tohutohuhia ahau vscale.io, a ka hanga tonu e ahau he tūmau mariko i runga i te Ubuntu ki runga, ka tukuna atu te bot. E kore ahau e whakaahua me pehea te mahi o tenei pae, engari ka haere tika ki nga tautuhinga bot.

Tuatahi, me whakauru e koe te rorohiko e tika ana hei whakahaere i to tatou bot i tuhia ki te .NET Core. Me pehea te mahi ka whakaahuahia i konei.

I muri mai, me tuku e koe te karetao ki te ratonga Git, penei i a GitHub me era atu mea, ka kati ki te tūmau VPS, ka tango ranei i to karetao i etahi atu huarahi. Kia mahara ka whiwhi koe i te papatohu anake, karekau he GUI. Katoa.

I muri i to tango i to bot, me whakahaere e koe. Mo tenei, ka hiahia koe:

  • Whakahokia nga whakawhirinakitanga katoa: dotnet restore
  • Hanga tono: dotnet build name_project.sln -c Tuku
  • Haere ki te hanga DLL;
  • dotnet name_of_file.dll

Kia ora! Kei te rere to bot. Heoi, ko te karetao, ko te kino, kei te noho i te papatohu, a ehara i te mea ngawari ki te puta i te tūmau VPS. Ano hoki, mena ka timata ano te tūmau, me timata koe i te karetao ma te huarahi hou. E rua nga huarahi ki waho o te ahuatanga. Ko enei katoa e pa ana ki te whakarewatanga i te tiimata o te tūmau:

  • Tāpiri hōtuhi rere ki /etc/init.d
  • Waihangatia he ratonga ka haere i te tiimatanga.

Kaore au e kite i te waahi ki te noho ki runga i a raatau, kua whakaahuahia nga mea katoa i runga i te Ipurangi.

kitenga

Kei te koa ahau ki te kawe i tenei mahi. Koinei taku wheako whanaketanga karetao tuatahi, a kei te koa ahau kua whiwhi matauranga hou ahau ki te C #, me te mahi tahi me Linux.

Hono ki te tūmau Discord. Mo te hunga e takaro ana i nga keemu Wargaming.
Honoa ki te putunga kei reira te karetao Discord.
Honoa ki te putunga DSharpPlus.
Mauruuru koe mo to aro!

Source: will.com

Tāpiri i te kōrero