Creando Discordia bot in .NET Core cum instruere ad VPS server

Creando Discordia bot in .NET Core cum instruere ad VPS server

Khabrovites salve!

Hodie videbis articulum qui monstrabit tibi quomodo creare autocinetum utens C# in .NET Core et quomodo eum in calculo remoto persequeris.

Articulus e scaena, scaena praeparatoria, logicam scribens et autocinetum ad longinquum cultorem transferens, constabit.

Spero hunc articulum multos incipientium adiuvabit.

erectus

Omnia insomnem autumni nocte exegi in Discordia servo. Cum nuper eum coniunxi, eum sursum ac deorsum studere coepi. Cum canalem textum "Vacanciis" invenisset, studiosi factus sum, aperui, et inter oblationes quae mihi non curabant inveni, hae sunt:

"Programma (bot elit)
requisita:

  • scientia programmandi linguarum;
  • facultatem ad sui ipsius doctrinam.

ПоТСлания:

  • posse intelligere aliorum codicem;
  • cognitio discordiae functionality.

aliquip;

  • progressus bot;
  • sustentationem et sustentationem bot.

Beneficium tuum;

  • Facultatem ad favorem gratiaeque tuae similem esse;
  • Nituntur operandi in quadrigis;
  • Facultatem demonstrandi et emendandi artes exsistentes.


Hoc statim quaero. Pro hoc opere non solvebant, sed obligationes a te non exigebant, et non erit superfluum in librario. Ideo servo admin scripsi, et me rogavit ut autocinetum scriberet quod statisticam in mundo Tanks ostendet.

Praeparatoria

Creando Discordia bot in .NET Core cum instruere ad VPS server
Discrod
Priusquam incipiamus scribere autocinetum nostrum, necesse est nos eam ad Discordiam creare. Opus est tibi;

  1. Login to Discordiam rationem Link
  2. In "Applicationibus" tab, preme in "Novam Applicationem" bullam et nomina bot
  3. Accipere bot indicium per colligationem in vestri bot et invenire "Bot" tab in "Optiones" album
  4. Servo signum alicubi

wargaming

Etiam applicationem in Wargaming creare debes ut aditus ad API Wargaming. Hic quoque omnia simplicia sunt;

  1. Login to your Wargaming account per hoc link
  2. Addimus "Meae Applicationes" et deprime "novam applicationem" conjunctionem adde, nomen applicationis praebens et eius genus eligens
  3. Salvo Application ID

Software

Iam non est liberum arbitrium. Aliquis Visual Studio utitur, aliquis Equitem, aliquis plerumque potens est, et codicem in Vim scribit (post omnes programmatores reales tantum claviaturis, iure utuntur?). Nihilominus, ne Discordiam API efficiamus, privata C# bibliotheca uti potes "DSharpPlus". Id instituere potes vel ex NuGet, vel ex repositorio fontes aedificando.

Nam qui nesciunt vel obliti sunt quomodo applicationes a NuGet instituendi.Instructiones pro Visual Studio

  1. Vade ad tab Project - Curo NuGet Packages;
  2. Deprime in recognitione et in agro investigationis intra "DSharpPlus";
  3. Lego et sol- nite;
  4. QUAESTUS!

Praeparatio finita est, potes scribere automati.

Logica scribo

Creando Discordia bot in .NET Core cum instruere ad VPS server

Totam logicam applicationis non considerabimus, tantum ostendemus quomodo intercipiendo nuntios ab autocineto laborare, et quomodo apud Wargaming API laborare.

Discordia laborare cum static accidit per async Task MainTask(nervum[] args);
Hoc munus vocare, in Main te scribere debes

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

Deinde, vos postulo automati initialize vestra:

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

Ubi signum est signum automati.
Tum per labda mandata necessaria scribimus ut autocinetus exequatur;

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

Ubi e.Author.Username utentis cognomen accipit.

Hoc modo, cum epistulam aliquam, quae mecum incipit, mittis, bot te salutabit.

In fine huius functionis scribere debes exspectare discordiam.ConnectAsync(); et exspecta Task.Delay(-1);

Hoc licebit tibi in curriculo mandata exequi sine filo principali tollendo.

Nunc de Wargaming API agendum est. Omnia hic simplicia sunt - scribe CURL petitiones, responsionem accipe in forma chordae JSON, necessarias inde notitias collige, et in illis manipulationes exerce.

Exemplum operandi cum 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;
        }

Attendite! Stricte non commendatur omnia signa et applicationem IDs in textu perspicuo reponere! Ad minimum, Discordia talia signa cum retiacula terrarum intrant, et ad maximum, autocinetum ab oppugnatoribus uti incipit.

Explicandi ordinis VPS - server

Creando Discordia bot in .NET Core cum instruere ad VPS server

Cum peractis autocinetis, necesse est ut hosted in servo qui perpetuo currit 24/7. Hoc ex eo quod applicatione tua currit, bot quoque currit. Ut primum applicationes averteris, dormit etiam automata tua.

Multi VPS servientes in hoc mundo existunt, tam in Fenestra quam in Linux, tamen in pluribus, multo vilius Linux hospitio.

De Discord servo, vscale.io monitus sum, et statim virtualem ministrantem in Ubuntu creavi et automati imposuisti. Non describam quomodo situs hic laborat, sed recta ad bot occasus perget.

Ante omnia, programmata necessaria instituere debes quae nostra automataria scripta in .NET Core persequetur. Facere describitur hic.

Deinde, necesse est ut autocinetum ad ministerium Git immittere, sicut GitHub et similia, et clone illud servo VPS, vel automati aliis modis depone. Nota quaeso quod solacium habebis tantum, nullum GUI. Omnino.

Postquam botones detraxisti, currere debes. Hoc enim debes;

  • Omnes clientelas restitue: dotnet restituo
  • Aedificare applicationem: dotnet constructum name_project.sln -c Release
  • DLL Ir aedificatum;
  • dotnet name_of_file.dll

Macte! Bot tuus currit. Nihilominus automati, proh dolor, consolatorium occupat, et non facile servo VPS exire. Etiam, si sileo cultor, novo modo incipiet autocinetum. Duobus modis e situ. Omnia haec cum servo startup ad launch referuntur:

  • Adde scriptum currere ad /etc/init.d
  • Creare servitium quod in satus current.

Punctum singillatim inesse non video, omnia in Interrete satis accurate descripta sunt.

Inventiones

Gaudeo me hoc negotium suscepisse. Haec prima experientia progressus autocineti fuit, et gaudeo me novam in C # scientiam accepisse, et cum Linux operando.

Link to Discordia servo. Pro his qui Wargaming ludos ludunt.
Repositorium ubi Discordia autocinetum sita est.
Link to the DSharpPlus repositorium.
Бпасибо за вниманиС!

Source: www.habr.com