Ƙirƙirar Discord bot akan NET Core tare da turawa zuwa uwar garken VPS

Ƙirƙirar Discord bot akan NET Core tare da turawa zuwa uwar garken VPS

Sannu Khabrovits!

A yau zaku ga labarin da zai nuna muku yadda ake ƙirƙirar bot ta amfani da C # akan .NET Core da yadda ake tafiyar da shi akan sabar nesa.

Labarin zai ƙunshi bango, matakin shiri, rubuta dabaru da canja wurin bot zuwa sabar mai nisa.

Ina fatan wannan labarin zai taimaka wa masu farawa da yawa.

prehistory

Hakan ya fara ne a daren kaka ɗaya mara barci wanda na shafe akan uwar garken Discord. Tun da na shiga shi kwanan nan na fara nazarinsa sama da kasa. Bayan samun tashar rubutu "Vacancy", na yi sha'awar, na bude shi, kuma na sami a cikin tayin da ba su damu da ni ba, waɗannan su ne:

"Programmer (bot developer)
Bukatun:

  • ilimin harsunan shirye-shirye;
  • iya karatun kai.

So:

  • iya fahimtar lambar wasu mutane;
  • ilimin aikin DISCORD.

Tasawainiya:

  • ci gaban bot;
  • goyon baya da kuma kula da bot.

Amfaninka:

  • Dama don tallafawa da tasiri aikin da kuke so;
  • Samun ƙwarewar aiki a cikin ƙungiya;
  • Dama don nunawa da haɓaka ƙwarewar da ke akwai.


Nan da nan wannan ya burge ni. Haka ne, ba su biya wannan aikin ba, amma ba su buƙatar wani wajibai daga gare ku ba, kuma ba zai zama mai girma a cikin fayil ɗin ba. Saboda haka, na rubuta zuwa ga admin na uwar garken, kuma ya tambaye ni in rubuta bot wanda zai nuna kididdigar dan wasan a Duniyar Tankuna.

Tsarin shiri

Ƙirƙirar Discord bot akan NET Core tare da turawa zuwa uwar garken VPS
Watsawa
Kafin mu fara rubuta bot ɗin mu, muna buƙatar ƙirƙirar shi don Discord. Kuna buƙatar:

  1. Shiga cikin asusun Discord mahada
  2. A cikin shafin "Applications", danna maballin "Sabon Aikace-aikacen" kuma sanya sunan bot
  3. Samun alamar bot ta shiga cikin bot ɗin ku kuma nemo shafin "Bot" a cikin jerin "Saituna".
  4. Ajiye alamar wani wuri

Wargam

Hakanan, kuna buƙatar ƙirƙirar aikace-aikace a cikin Wargaming don samun damar zuwa API ɗin Wargaming. Anan ma, komai mai sauki ne:

  1. Shiga cikin asusunku na Wargaming ta wannan hanyar
  2. Muna zuwa "My Applications" sai mu danna maballin "Add a new Application" muna bada sunan application din mu zabi nau'insa.
  3. Ajiye ID ɗin Aikace-aikacen

software

Akwai riga da 'yancin zaɓe. Wani yana amfani da Visual Studio, wani Rider, wani yana da ƙarfi gabaɗaya, kuma yana rubuta lamba a cikin Vim (bayan haka, ainihin masu shirye-shirye suna amfani da madannai ne kawai, daidai?). Koyaya, don kar a aiwatar da Discord API, zaku iya amfani da ɗakin karatu na C # wanda ba na hukuma ba "DsharpPlus". Kuna iya shigar da shi ko dai daga NuGet, ko ta hanyar gina tushen da kanku daga ma'ajiyar.

Ga wadanda basu sani ba ko kuma suka manta yadda ake shigar da aikace-aikace daga NuGet.Umarnin don Kayayyakin Kayayyakin Kayayyakin Kayayyakin

  1. Je zuwa shafin Project - Sarrafa Fakitin NuGet;
  2. Danna kan bita kuma a cikin filin bincike shigar da "DsharpPlus";
  3. Zaɓi kuma shigar da tsarin;
  4. RIGA!

Matakin shiri ya ƙare, zaku iya ci gaba zuwa rubuta bot.

Rubutun dabaru

Ƙirƙirar Discord bot akan NET Core tare da turawa zuwa uwar garken VPS

Ba za mu yi la'akari da dukan dabaru na aikace-aikace, Zan kawai nuna yadda za a yi aiki tare da interception na saƙonnin ta bot, da kuma yadda za a yi aiki tare da Wargaming API.

Yin aiki tare da bot ɗin Discord yana faruwa ta hanyar async async MainTask MainTask (kirtani[] args);
Don kiran wannan aikin, a cikin Babban kuna buƙatar yin rajista

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

Na gaba, kuna buƙatar fara bot ɗin ku:

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

Inda alamar ita ce alamar bot ɗin ku.
Sannan, ta hanyar lambda, muna rubuta mahimman umarni waɗanda bot yakamata suyi:

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

Inda e.Author.Sunan mai amfani ke samun laƙabin mai amfani.

Ta wannan hanyar, lokacin da kuka aika kowane saƙo da ya fara da &, bot ɗin zai gaishe ku.

A ƙarshen wannan aikin, dole ne ku rubuta jiran discord.ConnectAsync(); kuma jira Aiki. Jinkiri (-1);

Wannan zai ba ku damar aiwatar da umarni a bango ba tare da ɗaukar babban zaren ba.

Yanzu muna buƙatar mu'amala da API ɗin Wargaming. Komai yana da sauƙi a nan - rubuta buƙatun CURL, sami amsa a cikin nau'i na kirtani JSON, cire mahimman bayanai daga can kuma yi magudi akan su.

Misali na aiki tare da 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;
        }

Hankali! Ba a ba da shawarar sosai don adana duk alamu da ID na aikace-aikacen a cikin madaidaicin rubutu ba! Aƙalla, Discord yana hana irin waɗannan alamun lokacin da suka shiga hanyar sadarwa ta duniya, kuma a matsakaicin, bot ɗin ya fara amfani da bot.

Aika zuwa VPS - uwar garken

Ƙirƙirar Discord bot akan NET Core tare da turawa zuwa uwar garken VPS

Da zarar an gama da bot, yana buƙatar a shirya shi akan sabar da ke gudana koyaushe 24/7. Wannan ya faru ne saboda gaskiyar cewa lokacin da aikace-aikacenku ke gudana, bot shima yana gudana. Da zaran ka kashe aikace-aikacen, bot ɗinka shima yayi barci.

Yawancin sabobin VPS sun wanzu a wannan duniyar, duka akan Windows da Linux, duk da haka, a mafi yawan lokuta, yana da rahusa don karɓar bakuncin Linux.

A kan uwar garken Discord, an ba ni shawara vscale.io, kuma nan da nan na ƙirƙiri sabar sabar a kan Ubuntu kuma na loda bot. Ba zan bayyana yadda wannan rukunin yanar gizon ke aiki ba, amma zai tafi kai tsaye zuwa saitunan bot.

Da farko, kuna buƙatar shigar da mahimman software waɗanda za su gudanar da bot ɗin mu da aka rubuta a cikin NET Core. Yadda za a yi an bayyana shi a nan.

Na gaba, kuna buƙatar loda bot ɗin zuwa sabis na Git, kamar GitHub da makamantansu, kuma ku haɗa shi zuwa uwar garken VPS, ko zazzage bot ɗin ku ta wasu hanyoyi. Lura cewa za ku sami na'ura wasan bidiyo kawai, ba za a sami GUI ba. Kwata-kwata.

Bayan kun zazzage bot ɗin ku, kuna buƙatar gudanar da shi. Don wannan, kuna buƙatar:

  • Mayar da duk abin dogaro: dawo da dotnet
  • Gina aikace-aikacen: dotnet gina sunan_project.sln -c Sakin
  • Je zuwa ginanniyar DLL;
  • dotnet sunan_of_file.dll

Taya murna! Bot ɗin ku yana gudana. Koyaya, bot, da rashin alheri, ya mamaye na'ura wasan bidiyo, kuma ba shi da sauƙi fita uwar garken VPS. Hakanan, idan akwai sake kunna uwar garken, dole ne ku fara bot ta wata sabuwar hanya. Akwai hanyoyi guda biyu daga cikin halin da ake ciki. Dukansu suna da alaƙa da ƙaddamarwa a farawar uwar garken:

  • Ƙara rubutun gudu zuwa /etc/init.d
  • Ƙirƙiri sabis ɗin da zai gudana a farawa.

Ban ga ma'anar zama a kansu dalla-dalla ba, an bayyana komai dalla-dalla akan Intanet.

binciken

Na yi farin ciki da na ɗauki wannan aikin. Wannan shine ƙwarewar ci gaban bot na farko, kuma na yi farin ciki cewa na sami sabon ilimi a cikin C #, da aiki tare da Linux.

Hanyar haɗi zuwa uwar garken Discord. Ga waɗanda suke buga wasannin Wargaming.
Haɗi zuwa ma'ajiyar wurin da Discord bot yake.
Hanyar haɗi zuwa ma'ajiyar DsharpPlus.
Na gode da hankali!

source: www.habr.com

Add a comment