ProHoster > Блог > Nchịkwa > Ị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
Tụfuo
Tupu anyị amalite ide bot anyị, anyị kwesịrị ịmepụta ya maka Discord. Ị chọrọ:
Gaa na "My Applications" wee pịa bọtịnụ "Tinye ngwa ọhụrụ", nye aha ngwa ahụ wee họrọ ụdị ya.
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
Gaa na taabụ Project - Jikwaa ngwugwu NuGet;
Pịa na nyochaa wee tinye "DsharpPlus" n'ọhịa ọchụchọ;
Họrọ ma wụnye usoro;
PROFIT!
Oge nkwadebe agwụla, ị nwere ike ịga n'ihu na-ede bot.
Ịde mgbagha
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
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
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.
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ọ:
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.