Ինչպես ստեղծել Discord Bot


Անեկդոտներ պատմեք, երաժշտություն միացրեք ձեր հոսքում, ողջունեք նոր օգտվողներին ձեր սերվերում... ի՞նչ չի կարող անել Discord բոտը: Ոչինչ, երբ դու ծրագրավորման հետևում ես:

Discord-ում մարդիկ համագործակցում են գաղափարներ փոխանակելու, նախագծեր քննարկելու և ընդհանրապես կյանքի և հոբբիների մասին զրուցելու համար: Սակայն Discord բոտերը կարող են ձեր զրուցարանները դարձնել ավելի զվարճալի, բացի առաջադրանքների ավտոմատացումից: Դրանք կարող են լինել ամեն ինչ՝ պատահական կատակներ ասելուց մինչև հատուկ երաժշտություն նվագելը և այլն:

Այնուամենայնիվ, կան մի քանի կարևոր քայլեր, որոնք դուք պետք է հետևեք՝ սովորելով, թե ինչպես ստեղծել Discord բոտ: Մենք կուսումնասիրենք դրանք այս հոդվածում:

Եկեք սկսենք.

1. Ստեղծեք Ձեր Discord սերվերը

Նախքան Discord բոտ ստեղծելը, դուք պետք է սկսեք ստեղծել սերվեր, քանի որ սա բոտի նշանակման վայրն է:

Discord սերվերը կամ զրուցասենյակը տարածք է, որտեղ դուք կառավարում եք ալիքներն ու հաղորդակցությունները հարթակում:

Discord սերվեր ստեղծելու համար անցեք Discord կայք և մուտք գործեք ձեր Discord վահանակ: Կամ ստեղծեք հաշիվ, եթե արդեն չունեք:

Ձեր Dashboard-ում հայտնվելուց հետո հետևեք այս քայլերին՝ Discord սերվեր ստեղծելու համար.

  1. Սեղմեք ավելացման (+) պատկերակը ձախ կողագոտում:

  2. Ընտրեք Ստեղծել իմ սեփականըտարբերակը:

  3. Ընտրեք ձեր սերվերի ստեղծման նպատակը:
  4. Անհատականացրեք ձեր սերվերը պրոֆիլի նկարով և անունով: Այնուհետև սեղմեք Ստեղծել:

Դուք այժմ ստեղծել եք Discord սերվեր և պատրաստ եք բոտ ստեղծել դրա վրա որոշակի գործողություններ վերահսկելու համար:

2. Ստեղծեք և ստեղծեք ձեր Discord բոտը

Հաջորդը, դուք ցանկանում եք Discord բոտ ստեղծել Discord հավելվածի ներսում՝ գնալով Discord Developer Portal: Կամ դրա փոխարեն կարող եք մուտքագրել հետևյալ URL-ը ձեր բրաուզերի հասցեի դաշտում.

https://discord.com/developers/applications

Մի անգամ մշակողի վահանակում.

  1. Սեղմեք Նոր հավելված վերևի ձախ մասում:

  2. Նշեք ձեր դիմումի անունը տվյալ դաշտում: Այնուհետև սեղմեք Ստեղծել:

  3. Նայեք ձախ կողագոտին և ընտրեք Բոտ:
  4. Կտտացրեք Ավելացնել բոտ ծայրահեղ աջ կողմում:

  5. Հաջորդ հուշումից ընտրեք Այո, արեք դա

  6. Սեղմեք Պատճենել՝ ձեր բոտային նշանը պատճենելու համար: Ստեղծեք տեքստային ֆայլ ձեր նախագծի արմատից և տեղադրեք այնտեղ: Դուք կարող եք անվանել ֆայլը secret.txt: Համոզվեք, որ չեք բացահայտում պատճենված նշանը:

  7. Ոլորեք ներքև և միացրեք անջատիչը PRESENCE INTENT-ի տակ: Նաև միացրեք անջատիչը ՍԵՐՎԵՐԻ ԱՆԴԱՄՆԵՐԻ ՄԻՏԱԴՐՈՒԹՅՈՒՆ-ում:

  8. Հաջորդը, սեղմեք OAuth2 ձախ սանդղակի վրա՝ նույնականացման առաջնահերթություններ ավելացնելու ձեր Discord բոտին:
  9. Ընտրեք URL Generator , որպեսզի ստեղծեք բոտի հրավերի URL նախկինում ստեղծված սերվերի համար:
  10. Ընտրանքներից, Շրջանակներ-ում ընտրեք bot:

  11. Ոլորեք ներքև դեպի BOT PERMISSION բաժին և ընտրեք դերեր ձեր Discord բոտի համար: Այս դեպքում մենք նրան կտանք Ադմինիստրատորի դերը:

  12. Ոլորեք դեպի ներքև և սեղմեք ՊԱՏՃԱՌՆԵԼ ստեղծված URL-ը ձեր clipboard-ում պատճենելու համար:

Այժմ ձեր սերվերը բոտին կապելու համար:

Միացրեք սերվերը ձեր Discord բոտին

Ինչպես նշեցինք, բոտն աշխատում է հիմնականում սերվերի ներսում։ Հետևաբար, Discord բոտ ստեղծելուց հետո, ինչպես մենք արեցինք, դուք պետք է այն նշանակեք սերվերին, որտեղ ցանկանում եք, որ այն աշխատի:

Այսպիսով, երբ դուք պատճենեք գեներացված URL-ը, հետևեք այս հաջորդ քայլերին՝ ձեր զրույցի սենյակը Discord բոտին կապելու համար.

  1. Տեղադրեք պատճենված URL-ը ձեր բրաուզերի հասցեի դաշտում և մուտք գործեք այն:
  2. Հուշումից սեղմեք Ընտրեք սերվեր և ընտրեք այն, ինչ նախկինում ստեղծել եք:

  3. Շարունակելու համար սեղմեք Շարունակել :
  4. Դուք կտեսնեք նոր ընտրացանկ՝ ավելի վաղ սահմանած թույլտվությունների ցանկով: Ընտրեք Լիազորել:

  5. Լուծեք CAPTCHA՝ ավարտելու ձեր Discord բոտի լիազորումը:

Դուք այժմ ստեղծել եք Discord բոտ: Վերադարձեք ձեր սերվերի վահանակ և կտեսնեք ռոբոտը աջ կողագոտում: Բայց ինչպես տեսնում եք, այն ներկայումս անցանց է: Այսպիսով, այն դեռ չի աշխատում, քանի դեռ չեք ծրագրավորել դա անել:

Որպեսզի ձեր բոտը աշխատի, դուք պետք է գրեք սցենար ցանկացած ծրագրավորման լեզվով, որը լավագույնս աշխատում է ձեզ համար:

3. Ծրագրավորեք ձեր Discord բոտը Python-ի միջոցով

Այս ձեռնարկի համար մենք կօգտագործենք Python-ը և կհյուրընկալենք Discord բոտը տեղական մեքենայի վրա: Դուք կարող եք հյուրընկալել ձերը ամպային ծառայություններում, ինչպիսին է Heroku-ն, եթե ցանկանում եք, երբ ամեն ինչ կարգավորվի: Եկեք սուզվենք:

Ստեղծեք Python-ը և գրադարանները

Ձեր Discord բոտը Python-ով ծրագրավորելու համար դուք կօգտագործեք discord.py մոդուլը, որն աշխատում է միայն Python 3.5.3 կամ ավելի նոր տարբերակով:

Եթե դուք դա արդեն չեք արել կամ ունեք ավելի վաղ տարբերակ, այցելեք python.org՝ ներբեռնելու Python-ի վերջին տարբերակը:

Դուք կարող եք ստուգել ձեր համակարգչի վրա տեղադրված Python տարբերակը՝ մուտքագրելով հետևյալ հրամանը ձեր տերմինալում.

python --version

Եթե Python-ը արդիական է, բացեք տերմինալը ձեր նախագծի արմատին: Այնուհետև ակտիվացրեք Python վիրտուալ միջավայրը:

Բացի այդ, դուք պետք է տեղադրեք discord.py և ձայնային աջակցության փաթեթ, որը կոչվում է discord.py[voice]:

Վիրտուալ միջավայրում ակտիվ լինելու դեպքում ձեր տերմինալում գործարկեք հետևյալ հրամանը՝ այս փաթեթները տեղադրելու համար.

pip install -U discord.py discord.py[voice]

Ուղարկեք հաղորդագրություն ձեր Discord բոտի հետ

Այստեղ դուք կծրագրավորեք ձեր Discord բոտը, որպեսզի պատասխանի հատուկ հաղորդագրությամբ, երբ հաղորդագրություն եք ուղարկում ալիքում:

Բայց նախ մուտքագրեք հետևյալ կոդը ձեր սկրիպտի վերևում՝ ձեր Discord բոտը սկզբնավորելու համար.

import discord 
<strong># Import the commands module:</strong> 
from discord.ext import commands
<strong># Initialize the bot instance and use a blank prefix:</strong> 
bot = commands.Bot(command_prefix="") 
<strong>#Read your bot token from the txt file in your project root:</strong>
Secret = open("secret.txt", 'r')
Secret = Secret.read()
<strong>#Run the bot in an event loop:</strong>
bot.run(Secret)

bot փոփոխականը կանչում է հատուկ հրամաններ հրաման դասից: Եվ փակագծում դրված command_prefix-ը թույլ է տալիս նշել դրան նախորդող նիշը: Դոլարի նշանը ($), բացականչությունը (!), նշանը (&) և այլն, սովորական նախածանցներ են, որոնք նախորդում են բոտի հրամաններին:

Բայց մենք դատարկեցինք նախածանցը մեր դեպքում: Այսպիսով, Discord բոտին հրահանգելու ժամանակ դուք դրա կարիքը չունեք:

Օգտագործելով @bot.command() դեկորատորը, եկեք պատրաստենք հատուկ հրաման՝ Բարև և տրամադրենք պատասխան տեքստ Discord բոտի համար, երբ այն տեսնի:

Նկատի ունեցեք, որ հատուկ հրամանները Python-ի գործառույթներ են.

import discord 
<strong># Import the commands module:</strong> 
from discord.ext import commands
<strong># Initialize the bot instance:</strong> 
bot = commands.Bot(command_prefix="")
@bot.command()
async def Hi(ctx):
    await ctx.send("Hi, welcome to our server")
Secret = open("secret.txt", 'r')
Secret = Secret.read()
bot.run(Secret)

Այժմ գործարկեք Python սկրիպտը ձեր տերմինալում: Այնուհետև գնացեք Discord և ուղարկեք «Hi»՝ տեսնելու, թե ինչպես է բացվում կախարդանքը:

Ուշադիր նայելով՝ կտեսնեք, որ մենք օգտագործել ենք async սպասում մեթոդը՝ գործառույթը սպասարկելու համար: Սա կարևոր է, քանի որ մոդուլի համար դա Discord-ի հետ հաղորդակցվելու միակ միջոցն է:

ctxօրինակը համատեքստ է և ունի բազմաթիվ գործառույթներ: Բայց այս դեպքում այն թույլ է տալիս ձեր Discord բոտին հաղորդագրություն ուղարկել:

Բարի գալուստ ալիքի նոր անդամներին ձեր բոտով

Այս օրինակում դուք կտեսնեք, թե ինչպես կարելի է օգտագործել իրադարձությունները ողջույններ հրահրելու համար, երբ ինչ-որ մեկը միանում է ձեր սերվերին: Դուք նաև կսովորեք, թե ինչպես ցուցադրել նոր անդամի օգտանունը և սերվերը, որին նրանք միացել են ողջույնի հաղորդագրության մեջ:

Փոխարենը այստեղ մենք կօգտագործենք @bot.event: Ահա թե ինչպես է դա աշխատում.

@bot.event
async def on_member_join(member):
    guild = member.guild
    if guild.system_channel is not None:
       detailMessage = 'We welcome {0.mention} to the {1.name}!'.format(member, guild)
        await guild.system_channel.send(detailMessage)

on_member_join ֆունկցիան միջոցառման տեսակ է: Այնուամենայնիվ, կան շատ ուրիշներ: on_ready մեթոդը, օրինակ, լայնորեն կիրառվող իրադարձություն է՝ ստուգելու՝ արդյոք բոտը պատրաստ է, թե ոչ:

Ավելին, պայմանը, որը հետևում է if հայտարարությանը, ստուգում է, արդյոք կապակցված սերվերը (գիլդիա կամ զրուցասենյակ) գոյություն ունի, թե ոչ: Եթե դա այդպես է, ապա այն օգտագործում է Python տողային ձևաչափը մեթոդը՝ նոր անդամի օգտանունը և սերվերը, որին միացել են:

Այժմ խնդրեք ընկերոջը միանալ ձեր սերվերին՝ տեսնելու, թե ինչ է տեղի ունենում: Այնուամենայնիվ, դուք կարող եք նախ փորձել սա կեղծ Discord հաշվի միջոցով, որպեսզի համոզվեք, որ այն աշխատում է:

Խնդրեք Discord Bot-ին միանալ կամ հեռանալ աուդիո ալիքից

Հիմա եկեք ընդլայնենք կոդը: Եվ այս անգամ, դուք ձեր բոտին կասեք միանալ կամ հեռանալ աուդիո ալիքից, երբ այն ստանա որոշակի հրաման:

Ստորև բերված օրինակի կոդում Discord բոտը միանում է ձեզ աուդիո ալիքում, երբ մուտքագրում եք «enter»:

@bot.command()
async def enter(ctx):
    if ctx.author.voice:
        await ctx.message.author.voice.channel.connect()

եթե հայտարարության մեջ առկա պայմանը ստուգում է, թե արդյոք դուք արդեն միացել եք աուդիո ալիքին: Եթե այո, ապա սպասել հիմնաբառը կապում է ձեր Discord բոտը դրա հետ:

Դա նշանակում է, որ դուք պետք է միանաք աուդիո ալիքին, նախքան հրամանը կաշխատի:

Նշում. Համոզվեք, որ յուրաքանչյուր թարմացումից հետո դադարեցնում և վերագործարկում եք ձեր Python սկրիպտը: Այն թույլ է տալիս Python-ին համաժամեցնել ձեր փոփոխությունները:

Երբ նորից գործարկեք ձեր Python սկրիպտը, բացեք Discord-ը և մուտքագրեք enter. այժմ կտեսնեք, որ ձեր Discord բոտը միացել է աուդիո ալիքին:

Ձեր բոտին խնդրելը լքել ալիքը նույնքան հեշտ է, որքան այն ավելացնելը:

Հետևյալ կոդը հուշում է նրան հեռանալ ալիքից, երբ մուտքագրեք համապատասխան հրամանը: Այս դեպքում մենք կօգտագործենք «հեռանալ» բառը.

@bot.command()
async def leave(ctx):
    if ctx.voice_client:
        await ctx.guild.voice_client.disconnect()

Դադարեցրեք և նորից գործարկեք ձեր սցենարը: Discord բոտն այժմ պետք է հեռանա աուդիո ալիքից, երբ ուղարկեք «թողնել» հրամանը:

Շարունակեք բարելավել ձեր Discord Bot-ը

Վե՛րջ: Դուք ինքներդ դարձաք ֆունկցիոնալ Discord բոտ: Միացրեք կոդի օրինակային բլոկները և շարունակեք ավելացնել գործառույթներ ձեր Discord բոտին: Օրինակ, դուք կարող եք նրան ասել, որ երաժշտություն նվագարկի ձեր համակարգչից կամ հոսքային հարթակից, հենց որ այն միանա աուդիո ալիքին:

Discord բոտերը հաճելի է օգտագործել: Եթե դուք դեռ չեք ավտոմատացնում նրանց հետ առաջադրանքները ձեր զրուցարաններում, դուք կորցնում եք որոշ լուրջ արդյունավետություն: