ProHoster > Blog > Tsamaiso > Ho theha Discord bot ho .NET Core ka ho isoa ho seva sa VPS
Ho theha Discord bot ho .NET Core ka ho isoa ho seva sa VPS
Hello Khabrovites!
Kajeno u tla bona sehlooho se tla u bontša mokhoa oa ho etsa bot ho sebelisa C # ho .NET Core le mokhoa oa ho e tsamaisa ho seva se hōle.
Sengoloa se tla ba le semelo, sethala sa ho itokisa, ho ngola logic le ho fetisetsa bot ho seva se hole.
Ke tšepa hore sehlooho sena se tla thusa ba bangata ba qalang.
prehistory
Tsohle li qalile bosiung bo le bong bo sa robaleng ba hoetla boo ke ileng ka bo qeta ho seva sa Discord. Kaha ke sa tsoa kopanela le eena, ke ile ka qala ho ithuta le eena ho ea holimo le tlaase. Ha ke se ke fumane mocha oa mongolo "Vacancies", ke ile ka thahasella, ka e bula, 'me ka fumana har'a litlhahiso tse sa kang tsa nkhahla, tsena ke:
"Moqapi (moetsi oa bot) Litlhokahalo:
tsebo ea lipuo tsa mananeo;
bokgoni ba ho ithuta ka bowena.
Litakatso:
bokhoni ba ho utloisisa khoutu ea batho ba bang;
tsebo ea tšebetso ea DISCORD.
Mesebetsi:
ntshetsopele ya bot;
tšehetso le tlhokomelo ea bot.
Molemo oa hau:
Monyetla oa ho tšehetsa le ho susumetsa morero oo u o ratang;
Ho fumana boiphihlelo ba ho sebetsa sehlopheng;
Monyetla oa ho bontša le ho ntlafatsa litsebo tse teng.
Sena se ile sa nkhahla hang-hang. E, ha baa ka ba lefa bakeng sa mosebetsi ona, empa ha baa ka ba batla boitlamo leha e le bofe ho uena, 'me e ke ke ea e-ba ntho e sa hlokahaleng ka har'a potefolio. Ka hona, ke ile ka ngolla mookameli oa seva, 'me o ile a nkōpa hore ke ngole bot e tla bontša lipalo-palo tsa sebapali ho World of Tanks.
Mehato ea ho itokisa
Discrod
Pele re qala ho ngola bot ea rona, re hloka ho e etsetsa Discord. U hloka:
Re ea ho "Likopo Tsa Ka" ebe o tobetsa konopo ea "Eketsa sesebelisoa se secha", e fanang ka lebitso la kopo ebe o khetha mofuta oa eona.
Ho boloka ID ea Kopo
Software
Ho se ho ntse ho e-na le bolokolohi ba ho ikhethela. Motho e mong o sebelisa Visual Studio, motho e mong Rider, motho e mong ka kakaretso o na le matla, 'me o ngola khoutu ka Vim (ka mor'a moo, baetsi ba mananeo ba sebele ba sebelisa keyboard feela, na?). Leha ho le joalo, e le hore u se ke ua kenya ts'ebetsong Discord API, u ka sebelisa laebrari e sa tloaelehang ea C # "DSharpPlus". U ka e kenya ho tsoa ho NuGet, kapa ka ho iketsetsa mehloli ea hau ho tsoa sebakeng sa polokelo.
Bakeng sa ba sa tsebeng kapa ba lebetse ho kenya lits'ebetso ho tsoa ho NuGet.Litaelo tsa Visual Studio
Eya ho tab Project - Laola NuGet Packages;
Tobetsa ho tlhahlobo 'me tšimong ea ho batla kenya "DSharpPlus";
Khetha le ho kenya moralo;
ETSAHALA!
Mohato oa ho itokisa o felile, o ka tsoela pele ho ngola bot.
Mokhoa oa ho ngola
Re ke ke ra nahana ka mohopolo o felletseng oa ts'ebeliso, ke tla bonts'a feela mokhoa oa ho sebetsa ka ho ts'oaroa ha melaetsa ke bot, le mokhoa oa ho sebetsa le Wargaming API.
Ho sebetsa le Discord bot ho etsahala ka static async Task MainTask(string[] args);
Ho letsetsa ts'ebetso ena, ho Main o hloka ho ingolisa
Letshwao la bot la hao le hokae.
Ebe, ka lambda, re ngola litaelo tse hlokahalang tseo bot e lokelang ho li phetha:
discord.MessageCreated += async e =>
{
string message = e.Message.Content;
if (message.StartsWith("&"))
{
await e.Message.RespondAsync(“Hello, ” + e.Author.Username);
}
};
Moo e.Author.Lebitso la mosebedisi le fumanang lebitso la mosebedisi.
Ka tsela ena, ha o romella molaetsa ofe kapa ofe o qalang ka &, bot e tla u lumelisa.
Qetellong ea ts'ebetso ena, o tlameha ho ngola o emetse discord.ConnectAsync(); le ho emela Mosebetsi.Ditieho(-1);
Sena se tla u lumella ho phethahatsa litaelo ka morao ntle le ho nka khoele e kholo.
Hona joale re hloka ho sebetsana le Wargaming API. Ntho e 'ngoe le e' ngoe e bonolo mona - ngola likōpo tsa CURL, fumana karabo ka mokhoa oa khoele ea JSON, ntša lintlha tse hlokahalang ho tloha moo 'me u li etse bolotsana.
Mohlala oa ho sebetsa 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;
}
Ela hloko! Ha ho khothalletsoe ho boloka li-tokens tsohle le li-ID tsa kopo ka mongolo o hlakileng! Bonyane, Discord e thibela li-tokens tse joalo ha li kena marang-rang a lefats'e, 'me ka tekanyo e phahameng, bot e qala ho sebelisoa ke bahlaseli.
E fetisetsa ho VPS - seva
Ha u se u qetile ka bot, e hloka ho ts'oaroa ho seva e lulang e sebetsa 24/7. Sena se bakoa ke taba ea hore ha kopo ea hau e ntse e sebetsa, bot le eona e ea sebetsa. Hang ha o tima ts'ebeliso, bot ea hau le eona e ea khaleha.
Li-server tse ngata tsa VPS li teng lefatšeng lena, ho Windows le ho Linux, leha ho le joalo, maemong a mangata, ho theko e tlase haholo ho amohela Linux.
Ho seva sa Discord, ke ile ka eletsoa vscale.io, 'me hang-hang ke ile ka theha seva ea sebele ho Ubuntu ho eona' me ka kenya bot. Nke ke ka hlalosa hore na sebaka sena se sebetsa joang, empa se tla ea ka kotloloho ho litlhophiso tsa bot.
Ka mor'a moo, o hloka ho kenya bot ho tšebeletso ea Git, joaloka GitHub le tse ling tse joalo, 'me u e kopanye le seva sa VPS, kapa u khoasolle bot ea hau ka litsela tse ling. Ka kopo hlokomela hore u tla ba le console feela, ha ho na GUI. Ho hang.
Ka mor'a hore u khoasolle bot ea hau, u lokela ho e tsamaisa. Ho etsa sena, o hloka:
Kea u babatsa! Bot ea hau ea sebetsa. Leha ho le joalo, bot, ka bomalimabe, e lula console, 'me ha ho bonolo ho tsoa ho seva sa VPS. Hape, haeba seva se qala bocha, o tla tlameha ho qala bot ka tsela e ncha. Ho na le mekhoa e 'meli ea ho tsoa maemong. Kaofela ha tsona li amana le ho qala ha seva e qala:
Kenya run script ho /etc/init.d
Theha tšebeletso e tla sebetsa qalong.
Ha ke bone ntlha ea ho lula holim'a bona ka ho qaqileng, ntho e 'ngoe le e' ngoe e hlalosoa ka ho lekaneng ho Internet.
fumanoeng ke
Ke thabela hore ebe ke ile ka amohela kabelo ena. Ena e bile boiphihlelo ba ka ba pele ba nts'etsopele ea bot, 'me ke thabetse hore ebe ke fumane tsebo e ncha ho C #, le ho sebetsa le Linux.