በ NET Core ላይ የ Discord bot መፍጠር ከ VPS አገልጋይ ጋር

በ NET Core ላይ የ Discord bot መፍጠር ከ VPS አገልጋይ ጋር

ሰላም ካብሮቪትስ!

ዛሬ በ NET Core ላይ C # ን በመጠቀም ቦት እንዴት መፍጠር እንደሚችሉ እና በሩቅ አገልጋይ ላይ እንዴት እንደሚሰራ የሚያሳይ ጽሑፍ ያያሉ።

ጽሑፉ ዳራ፣ የዝግጅት ደረጃ፣ አመክንዮ መጻፍ እና ቦትን ወደ የርቀት አገልጋይ ማስተላለፍን ያካትታል።

ይህ ጽሑፍ ብዙ ጀማሪዎችን እንደሚረዳ ተስፋ አደርጋለሁ።

prehistory

ይህ ሁሉ የተጀመረው በ Discord አገልጋይ ላይ ባሳለፍኩበት አንድ እንቅልፍ አልባ የመኸር ምሽት ነው። በቅርብ ስለተቀላቀልኩበት ወደላይና ወደ ታች ማጥናት ጀመርኩ። “ክፍት ቦታዎች” የሚለውን የጽሑፍ ቻናል ካገኘሁ በኋላ ፍላጎት ሆንኩኝ ፣ ከፍቼዋለሁ እና ከማይፈልጉኝ ቅናሾች መካከል አገኘሁ ፣ እነዚህ ናቸው

ፕሮግራመር (ቦት ገንቢ)
መስፈርቶች

  • የፕሮግራም ቋንቋዎች እውቀት;
  • ራስን የመማር ችሎታ።

Пожелания:

  • የሌሎች ሰዎችን ኮድ የመረዳት ችሎታ;
  • የ DISCORD ተግባራዊነት እውቀት።

ተግባራት

  • የቦት እድገት;
  • የቦቱን ድጋፍ እና ጥገና.

የእርስዎ ጥቅም፡-

  • የሚወዱትን ፕሮጀክት ለመደገፍ እና ተፅእኖ የማድረግ እድል;
  • በቡድን ውስጥ የመሥራት ልምድ ማዳበር;
  • ያሉትን ክህሎቶች ለማሳየት እና ለማሻሻል እድል.


ይህ ወዲያውኑ ሳበኝ። አዎ, ለዚህ ሥራ አልከፈሉም, ነገር ግን ከእርስዎ ምንም ግዴታዎች አልጠየቁም, እና በፖርትፎሊዮው ውስጥ ከመጠን በላይ አይሆንም. ስለዚህ ለአገልጋዩ አስተዳዳሪ ጻፍኩኝ እና የተጫዋቹን ስታቲስቲክስ በአለም ታንኮች ውስጥ የሚያሳይ ቦት እንድጽፍ ጠየቀኝ።

ዝግጅቱ ደረጃ

በ NET Core ላይ የ Discord bot መፍጠር ከ VPS አገልጋይ ጋር
አስወግድ
ቦታችንን መፃፍ ከመጀመራችን በፊት ለ Discord መፍጠር አለብን። ትፈልጋለህ:

  1. ወደ Discord መለያ ይግቡ ማያያዣ
  2. በ "መተግበሪያዎች" ትር ውስጥ "አዲስ መተግበሪያ" የሚለውን ቁልፍ ጠቅ ያድርጉ እና ቦቱን ይሰይሙ
  3. ወደ ቦትዎ በመግባት እና በ "ቅንጅቶች" ዝርዝር ውስጥ የ "ቦት" ትርን በማግኘት የ bot token ያግኙ
  4. ማስመሰያውን የሆነ ቦታ ያስቀምጡ

መጋባት

እንዲሁም ወደ Wargaming API መዳረሻ ለማግኘት በ Wargaming ውስጥ መተግበሪያ መፍጠር አለብዎት። እዚህ ፣ እንዲሁም ፣ ሁሉም ነገር ቀላል ነው-

  1. ወደ Wargaming መለያዎ ይግቡ በዚህ ሊንክ
  2. ወደ "My Applications" ሄደን "አዲስ አፕሊኬሽን አክል" የሚለውን ቁልፍ በመጫን የማመልከቻውን ስም እየሰጠን አይነቱን በመምረጥ
  3. የመተግበሪያ መታወቂያውን በማስቀመጥ ላይ

ሶፍትዌር

ቀድሞውኑ የመምረጥ ነፃነት አለ. አንድ ሰው ቪዥዋል ስቱዲዮን ይጠቀማል፣ አንድ ሰው ራይደር፣ አንድ ሰው በአጠቃላይ ኃይለኛ ነው፣ እና በቪም ውስጥ ኮድ ይጽፋል (ከሁሉም በኋላ እውነተኛ ፕሮግራመሮች የቁልፍ ሰሌዳውን ብቻ ይጠቀማሉ፣ ትክክል?)። ነገር ግን፣ Discord API ን ላለመተግበር፣ መደበኛ ያልሆነውን የC # ቤተ-መጽሐፍት "DsharpPlus" መጠቀም ይችላሉ። ከ NuGet ወይም ምንጮቹን እራስዎ ከማከማቻው ውስጥ በመገንባት መጫን ይችላሉ.

ከ NuGet አፕሊኬሽን እንዴት እንደሚጭኑ ለማያውቁ ወይም ለረሱ።ለእይታ ስቱዲዮ መመሪያዎች

  1. ወደ ትሩ ይሂዱ ፕሮጀክት - የ NuGet ፓኬጆችን ያቀናብሩ;
  2. በግምገማው ላይ ጠቅ ያድርጉ እና በፍለጋ መስክ ውስጥ "DsharpPlus" ያስገቡ;
  3. ማዕቀፍ ይምረጡ እና ይጫኑ;
  4. ትርፍ!

የዝግጅት ደረጃው አልቋል, ቦቱን ለመጻፍ መቀጠል ይችላሉ.

አመክንዮ መጻፍ

በ NET Core ላይ የ Discord bot መፍጠር ከ VPS አገልጋይ ጋር

የመተግበሪያውን አጠቃላይ አመክንዮ አንመለከትም ፣ እኔ በ bot የመልእክቶችን ጣልቃ ገብነት እንዴት እንደሚሰራ እና ከ Wargaming API ጋር እንዴት እንደሚሰራ ብቻ አሳያለሁ።

ከ Discord bot ጋር አብሮ መስራት በስታቲክ አስምርት ተግባር MainTask (ሕብረቁምፊ[] args) በኩል ይከሰታል።
ይህንን ተግባር ለመጥራት በዋና ውስጥ መመዝገብ አለብዎት

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

በመቀጠል የእርስዎን ቦት ማስጀመር ያስፈልግዎታል፡-

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

ማስመሰያ የቦትዎ ማስመሰያ የት ነው።
ከዚያ በላምዳው በኩል ቦት መፈጸም ያለበትን አስፈላጊ ትዕዛዞችን እንጽፋለን-

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

e.Author.የተጠቃሚ ስም የተጠቃሚውን ቅጽል ስም እያገኘ ነው።

በዚህ መንገድ በ & የሚጀምር ማንኛውንም መልእክት ስትልኩ ቦት ሰላምታ ይሰጥሃል።

በዚህ ተግባር መጨረሻ ላይ መጠበቅ አለብህ discord.ConnectAsync (); እና ተግባርን ይጠብቁ. መዘግየት (-1);

ይህ ዋናውን ክር ሳይወስዱ በጀርባ ውስጥ ትዕዛዞችን እንዲፈጽሙ ያስችልዎታል.

አሁን ከ Wargaming ኤፒአይ ጋር መገናኘት አለብን። እዚህ ሁሉም ነገር ቀላል ነው - የ CURL ጥያቄዎችን ይፃፉ ፣ በ JSON string መልክ ምላሽ ያግኙ ፣ አስፈላጊውን ውሂብ ከዚያ ያውጡ እና በእነሱ ላይ ማጭበርበሮችን ያከናውኑ።

ከ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;
        }

ትኩረት! ሁሉንም ቶከኖች እና የመተግበሪያ መታወቂያዎች ግልጽ በሆነ ጽሑፍ ውስጥ ማከማቸት በጥብቅ አይመከርም! ቢያንስ፣ Discord እንደዚህ አይነት ቶከኖች ወደ አለምአቀፍ አውታረመረብ ሲገቡ ይከለክላል፣ እና ቢበዛ ቦት በአጥቂዎች መጠቀም ይጀምራል።

ወደ VPS - አገልጋይ ያሰማሩ

በ NET Core ላይ የ Discord bot መፍጠር ከ VPS አገልጋይ ጋር

በቦት አንዴ ከጨረሱ በኋላ 24/7 ያለማቋረጥ በሚያሄድ አገልጋይ ላይ ማስተናገድ ያስፈልገዋል። ይህ የሆነበት ምክንያት ማመልከቻዎ በሚሰራበት ጊዜ ቦት እንዲሁ እየሰራ ነው። ማመልከቻውን እንዳጠፉት፣ ቦትዎም ይተኛል።

ብዙ የቪፒኤስ አገልጋዮች በዚህ ዓለም በዊንዶውስ እና በሊኑክስ ላይ ይገኛሉ ፣ነገር ግን በአብዛኛዎቹ ሁኔታዎች በሊኑክስ ላይ ማስተናገድ በጣም ርካሽ ነው።

በ Discord አገልጋይ ላይ፣ vscale.io ተመክሬያለሁ፣ እና ወዲያውኑ በኡቡንቱ ላይ ምናባዊ አገልጋይ ፈጠርኩ እና ቦቱን ጫንኩ። ይህ ጣቢያ እንዴት እንደሚሰራ አልገልጽም, ነገር ግን በቀጥታ ወደ ቦት መቼቶች እሄዳለሁ.

በመጀመሪያ ደረጃ በ NET Core የተጻፈውን የእኛን ቦት የሚያሄድ አስፈላጊውን ሶፍትዌር መጫን ያስፈልግዎታል. እንዴት ማድረግ እንደሚቻል እዚህ ተብራርቷል.

በመቀጠል ቦቱን እንደ GitHub እና የመሳሰሉትን ወደ Git አገልግሎት መስቀል እና ወደ ቪፒኤስ አገልጋይ መዝጋት ወይም ቦትህን በሌሎች መንገዶች ማውረድ አለብህ። እባክዎ ኮንሶል ብቻ እንደሚኖርዎት ያስተውሉ GUI የለም። ፈጽሞ.

ቦትዎን ካወረዱ በኋላ ማስኬድ ያስፈልግዎታል። ለዚህ, ያስፈልግዎታል:

  • ሁሉንም ጥገኞች ወደነበሩበት ይመልሱ፡ dotnet እነበረበት መልስ
  • አፕሊኬሽን ገንቡ፡ dotnet build name_project.sln -c መልቀቅ
  • ወደ የተገነባው DLL ይሂዱ;
  • dotnet ስም_of_file.dll

እንኳን ደስ አላችሁ! የእርስዎ ቦት እየሄደ ነው። ሆኖም ግን, ቦት, በሚያሳዝን ሁኔታ, ኮንሶሉን ይይዛል, እና ከ VPS አገልጋይ ለመውጣት ቀላል አይደለም. እንዲሁም፣ አገልጋዩ እንደገና ከተጀመረ ቦቱን በአዲስ መንገድ መጀመር ይኖርብዎታል። ከሁኔታው ውጭ ሁለት መንገዶች አሉ። ሁሉም በአገልጋይ ጅምር ላይ ካለው ጅምር ጋር የተያያዙ ናቸው።

  • አሂድ ስክሪፕት ወደ /etc/init.d ያክሉ
  • ጅምር ላይ የሚሰራ አገልግሎት ይፍጠሩ።

በእነሱ ላይ የመኖር ነጥቡን በዝርዝር አላየሁም, ሁሉም ነገር በኢንተርኔት ላይ በበቂ ዝርዝር ውስጥ ተገልጿል.

ግኝቶች

ይህንን ኃላፊነት በመውሰዴ ደስተኛ ነኝ። ይህ የመጀመሪያዬ የቦት ልማት ተሞክሮ ነበር፣ እና በC # ላይ አዲስ እውቀት በማግኘቴ እና ከሊኑክስ ጋር በመስራት ደስተኛ ነኝ።

ወደ Discord አገልጋይ አገናኝ። Wargaming ጨዋታዎችን ለሚጫወቱ።
Discord bot ወደሚገኝበት ማከማቻው አገናኝ።
ወደ DsharpPlus ማከማቻ አገናኝ።
ለሚያደርጉት ጥረት እናመሰግናለን!

ምንጭ: hab.com

አስተያየት ያክሉ