Nggawe bot Discord ing .NET Core kanthi penyebaran menyang server VPS
Hello Khabrovites!
Dina iki sampeyan bakal weruh artikel sing bakal nuduhake sampeyan carane nggawe bot nggunakake C# ing .NET Core lan carane mbukak ing server remot.
Artikel kasebut bakal kalebu latar mburi, tahap persiapan, nulis logika lan nransfer bot menyang server remot.
Muga-muga artikel iki bakal mbantu akeh pamula.
prasejarah
Iku kabeh diwiwiti ing siji wengi Autumn sleepless aku ngginakaken ing server Discord. Wiwit aku bubar melu dheweke, aku wiwit sinau munggah lan mudhun. Sawise nemokake saluran teks "Lowongan", aku dadi kasengsem, mbukak, lan nemokake ing antarane tawaran sing ora narik kawigaten, yaiku:
"Programmer (pengembang bot) Syarat:
kawruh basa pamrograman;
kemampuan kanggo sinau dhewe.
CATETAN:
kemampuan kanggo ngerti kode wong liya;
kawruh babagan fungsi DISCORD.
Tugas:
pangembangan bot;
dhukungan lan pangopènan bot.
Keuntungan sampeyan:
Kesempatan kanggo ndhukung lan mengaruhi proyek sing disenengi;
Entuk pengalaman kerja ing tim;
Kesempatan kanggo nduduhake lan nambah katrampilan sing ana.
Iki langsung kasengsem kula. Ya, padha ora mbayar karya iki, nanging padha ora nuntut kewajiban saka sampeyan, lan iku ora bakal superfluous ing portofolio. Mulane, aku wrote admin server, lan takon kula kanggo nulis bot sing bakal nuduhake statistik pamuter ing World of Tanks.
Tahap preparatory
Discrod
Sadurunge miwiti nulis bot, kita kudu nggawe kanggo Discord. Sampeyan perlu:
Pindhah menyang "Aplikasiku" lan klik tombol "Tambah aplikasi anyar", menehi jeneng aplikasi lan milih jinise.
Nyimpen ID Aplikasi
Software
Wis ana kebebasan milih. Ana sing nggunakake Visual Studio, wong Rider, wong umume kuat, lan nulis kode ing Vim (sawise kabeh, programer nyata mung nggunakake keyboard, ta?). Nanging, supaya ora ngleksanakake API Discord, sampeyan bisa nggunakake perpustakaan C # ora resmi "DSharpPlus". Sampeyan bisa nginstal saka NuGet, utawa kanthi mbangun sumber dhewe saka gudang.
Kanggo sing ora ngerti utawa lali carane nginstal aplikasi saka NuGet.Pandhuan kanggo Visual Studio
Pindhah menyang tab Project - Atur Paket NuGet;
Klik ing review lan ing kolom telusuran ketik "DSharpPlus";
Pilih lan nginstal framework;
Bathi!
Tahap persiapan wis rampung, sampeyan bisa nerusake nulis bot.
Logika nulis
Kita ora bakal nimbang kabeh logika aplikasi, Aku mung bakal nuduhake carane bisa karo interception pesen dening bot, lan carane bisa karo Wargaming API.
Nggarap bot Discord dumadi liwat Task MainTask async statis (string [] args);
Kanggo nelpon fungsi iki, ing Utama sampeyan kudu ndhaptar
Endi token iku token bot sampeyan.
Banjur, liwat lambda, kita nulis perintah sing dibutuhake sing kudu ditindakake bot:
discord.MessageCreated += async e =>
{
string message = e.Message.Content;
if (message.StartsWith("&"))
{
await e.Message.RespondAsync(βHello, β + e.Author.Username);
}
};
Where e.Author.Username entuk julukan pangguna.
Kanthi cara iki, nalika sampeyan ngirim pesen sing diwiwiti karo &, bot bakal menehi salam marang sampeyan.
Ing mburi fungsi iki, sampeyan kudu nulis ngenteni discord.ConnectAsync (); lan ngenteni Tugas.Tundha (-1);
Iki bakal ngidini sampeyan nglakokake printah ing latar mburi tanpa njupuk utas utama.
Saiki kita kudu ngatasi API Wargaming. Kabeh iku prasaja ing kene - nulis panjalukan CURL, entuk respon ing wangun string JSON, narik data sing dibutuhake saka ing kono lan nindakake manipulasi.
Conto nggarap 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;
}
Sawise sampeyan rampung karo bot, iku kudu dadi tuan rumah ing server sing terus-terusan mlaku 24/7. Iki amarga kasunyatane nalika aplikasi sampeyan mlaku, bot uga mlaku. Sanalika sampeyan mateni aplikasi kasebut, bot sampeyan uga ngantuk.
Akeh server VPS sing ana ing jagad iki, ing Windows lan ing Linux, nanging ing umume kasus, luwih murah dadi host ing Linux.
Kaping pisanan, sampeyan kudu nginstal piranti lunak sing dibutuhake sing bakal mbukak bot kita sing ditulis ing .NET Core. Carane nindakake iku diterangake ing kene.
Sabanjure, sampeyan kudu ngunggah bot menyang layanan Git, kaya GitHub lan liya-liyane, lan kloning menyang server VPS, utawa ngundhuh bot sampeyan kanthi cara liya. Elinga yen sampeyan mung duwe console, ora ana GUI. Sakabehe.
Sawise sampeyan ngundhuh bot sampeyan, sampeyan kudu mbukak. Kanggo iki, sampeyan kudu: