ProHoster > Blog > Rianachd > A’ cruthachadh bot Discord air .NET Core le cleachdadh gu frithealaiche VPS
A’ cruthachadh bot Discord air .NET Core le cleachdadh gu frithealaiche VPS
Halo Khabrovites!
An-diugh chì thu artaigil a sheallas dhut mar a chruthaicheas tu bot a’ cleachdadh C # air .NET Core agus mar a ruitheas tu e air frithealaiche iomallach.
Bidh an artaigil air a dhèanamh suas de chùl-fhiosrachadh, ìre ullachaidh, sgrìobhadh loidsig agus gluasad am bot gu frithealaiche iomallach.
Tha mi an dòchas gun cuidich an artaigil seo mòran de luchd-tòiseachaidh.
ro-eachdraidheil
Thòisich e uile air aon oidhche foghair gun chadal a chuir mi seachad air an t-seirbheisiche Discord. Bho chaidh mi còmhla ris o chionn ghoirid, thòisich mi ga sgrùdadh suas is sìos. An dèidh dhomh an sianal teacsa "Vacancies" a lorg, ghabh mi ùidh, dh'fhosgail mi e, agus lorg mi am measg nan tairgsean nach robh ùidh agam, is iad sin:
“Programaiche (leasaiche bot) Riatanasan:
eòlas air cànanan prògramaidh;
comas air fèin-ionnsachadh.
Miannan:
comas còd dhaoine eile a thuigsinn;
eòlas air gnìomhachd DISCORD.
Gnìomhan:
leasachadh bot;
taic agus cumail suas an bot.
Do bhuannachd:
Cothrom taic agus buaidh a thoirt don phròiseact as toil leat;
A 'faighinn eòlas air a bhith ag obair ann an sgioba;
Cothrom na sgilean a th’ ann mu thràth a thaisbeanadh agus a leasachadh.
Thug seo ùidh dhomh sa bhad. Seadh, cha do phàigh iad airson na h-obrach seo, ach cha do dh'iarr iad dleastanasan sam bith ort, agus cha bhi e iomarcach sa phasgan. Mar sin, sgrìobh mi gu rianaire an fhrithealaiche, agus dh’ iarr e orm bot a sgrìobhadh a sheallas staitistig a’ chluicheadair ann an World of Tanks.
Ìre ullachaidh
Discrod
Mus tòisich sinn a’ sgrìobhadh ar bot, feumaidh sinn a chruthachadh airson Discord. Feumaidh tu:
Thèid sinn gu “Na h-iarrtasan agam” agus cliog air a’ phutan “Cuir tagradh ùr ris”, a’ toirt ainm an tagraidh agus a’ taghadh a sheòrsa
A’ sàbhaladh ID an Iarrtais
bathar-bog
Tha saorsa roghainn ann mu thràth. Bidh cuideigin a 'cleachdadh Visual Studio, cuideigin Rider, tha cuideigin cumhachdach san fharsaingeachd, agus a' sgrìobhadh còd ann an Vim (às deidh a h-uile càil, chan eil prògraman fìor a 'cleachdadh ach am meur-chlàr, ceart?). Ach, gus nach cuir thu an API Discord an gnìomh, faodaidh tu an leabharlann C # neo-oifigeil “DSharpPlus” a chleachdadh. Faodaidh tu a stàladh an dàrna cuid bho NuGet, no le bhith a’ togail na stòran thu fhèin bhon stòr.
Dhaibhsan aig nach eil fios no a dhìochuimhnich mar a stàlaicheas iad tagraidhean bho NuGet.Stiùireadh airson lèirsinneach studio
Cliog air an lèirmheas agus san raon sgrùdaidh cuir a-steach “DSharpPlus”;
Tagh agus stàlaich frèam;
BRATHADH!
Tha an ìre ullachaidh seachad, faodaidh tu a dhol air adhart gu bhith a’ sgrìobhadh am bot.
A ' sgrìobhadh logic
Cha bheachdaich sinn air loidsig iomlan an tagraidh, cha sheall mi ach mar a dh’ obraicheas tu le eadar-ghabhail teachdaireachdan leis a ’bot, agus mar a dh’ obraicheas tu leis an Wargaming API.
Bidh a bhith ag obair leis a’ bot Discord a ’tachairt tron ghnìomh async statach MainTask (sreang [] args);
Gus an gnìomh seo a ghairm, ann am Prìomh feumaidh tu clàradh
Càite a bheil comharradh do bot.
An uairsin, tron lamda, bidh sinn a’ sgrìobhadh na h-òrdughan riatanach a bu chòir don bot a chuir an gnìomh:
discord.MessageCreated += async e =>
{
string message = e.Message.Content;
if (message.StartsWith("&"))
{
await e.Message.RespondAsync(“Hello, ” + e.Author.Username);
}
};
Far a bheil e.Author.Username a’ faighinn far-ainm an neach-cleachdaidh.
San dòigh seo, nuair a chuireas tu teachdaireachd sam bith a thòisicheas le &, cuiridh am bot fàilte ort.
Aig deireadh na h-obrach seo, feumaidh tu sgrìobhadh feitheamh discord.ConnectAsync(); agus feitheamh ri Task.Delay(-1);
Leigidh seo leat òrdughan a chuir an gnìomh air a’ chùl gun a bhith a’ gabhail a’ phrìomh snàithlean.
A-nis feumaidh sinn dèiligeadh ris an Wargaming API. Tha a h-uile dad sìmplidh an seo - sgrìobh iarrtasan CURL, faigh freagairt ann an cruth sreang JSON, tarraing a-mach an dàta riatanach às an sin agus dèan làimhseachadh orra.
Eisimpleir de bhith ag obair le 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;
}
Thoir an aire! Chan eilear a’ moladh a h-uile comharra agus ID tagraidh a stòradh ann an teacsa soilleir! Aig a 'char as lugha, tha Discord a' toirmeasg comharran mar sin nuair a thèid iad a-steach don lìonra air feadh an t-saoghail, agus aig a 'char as àirde, bidh am bot a' tòiseachadh air a chleachdadh le luchd-ionnsaigh.
Cuir gu VPS - frithealaiche
Aon uair ‘s gu bheil thu deiseil leis a’ bot, feumaidh e a bhith air aoigheachd air frithealaiche a tha an-còmhnaidh a ’ruith 24/7. Tha seo air sgàth nuair a tha an tagradh agad a’ ruith, gu bheil am bot a’ ruith cuideachd. Cho luath ‘s a chuireas tu dheth an tagradh, tuitidh am bot agad na chadal cuideachd.
Tha mòran de luchd-frithealaidh VPS ann san t-saoghal seo, an dà chuid air Windows agus air Linux, ge-tà, sa mhòr-chuid de chùisean, tha e tòrr nas saoire aoigheachd a thoirt air Linux.
Air an t-seirbheisiche Discord, chaidh comhairle a thoirt dhomh vscale.io, agus chruthaich mi sa bhad frithealaiche brìgheil air Ubuntu air agus luchdaich mi suas am bot. Cha toir mi cunntas air mar a tha an làrach seo ag obair, ach thèid mi dìreach gu na roghainnean bot.
An ath rud, feumaidh tu am bot a luchdachadh suas gu seirbheis Git, mar GitHub agus an leithid, agus clone gu frithealaiche VPS, no luchdaich sìos am bot agad ann an dòighean eile. Thoir an aire nach bi agad ach consol, gun GUI. Idir idir.
Às deidh dhut am bot agad a luchdachadh sìos, feumaidh tu a ruith. Airson seo, feumaidh tu:
Thoir air ais a h-uile eisimeileachd: ath-nuadhachadh dotnet
Tog tagradh: dotnet build name_project.sln -c Release
Rach gu DLL togte;
ainm dotnet_of_file.dll
Mealaibh ur naidheachd! Tha am bot agad a’ ruith. Ach, gu mì-fhortanach, tha am bot a 'fuireach air a' chonsail, agus chan eil e cho furasta am frithealaiche VPS fhàgail. Cuideachd, air eagal gun tòisich frithealaiche ath-thòiseachadh, feumaidh tu am bot a thòiseachadh ann an dòigh ùr. Tha dòigh no dhà a-mach às an t-suidheachadh. Tha iad uile co-cheangailte ris an fhoillseachadh aig toiseach tòiseachaidh an fhrithealaiche:
Cuir sgriobt ruith ri /etc/init.d
Cruthaich seirbheis a ruitheas aig àm tòiseachaidh.
Chan eil mi a 'faicinn a' phuing a bhith a 'fuireach orra gu mionaideach, tha a h-uile dad air a mhìneachadh gu mionaideach air an eadar-lìon.
toraidhean
Tha mi toilichte gun do ghabh mi ris an obair seo. B’ e seo a’ chiad eòlas leasachaidh bot agam, agus tha mi toilichte gun d’ fhuair mi eòlas ùr ann an C #, agus ag obair le Linux.