Rumah >hujung hadapan web >tutorial js >Cara Membina Bot Perselisihan Pertama Anda Dengan Node.js
Artikel ini hanya akan memberi tumpuan kepada membuat bot pertama anda dengan API Discord yang terdedah. Mungkin bot Discord yang paling terkenal adalah bot muzik. Bot muzik membolehkan anda menaip nama lagu dan bot akan melampirkan pengguna baru ke saluran anda yang memainkan lagu yang diminta. Ia adalah bot yang biasa digunakan di kalangan orang muda di pelayan permainan atau streaming.
mari kita mulakan dengan membuat bot Discord Custom.
Artikel ini dikemas kini untuk 2020. Untuk mengetahui lebih banyak nod, lihat pembangunan web Node.js. Takeaways Key
Pop-up akan dipaparkan yang meminta anda jika anda ingin menyertai pelayan atau membuat yang baru. Sudah tentu, kami ingin membuat pelayan baru.
Seterusnya, kita perlu memasukkan nama untuk pelayan kami. Untuk menjaga perkara yang mudah, saya telah menamakan pelayan Discord_playground. Jika anda mahu, anda boleh menukar lokasi pelayan bergantung pada tempat anda berada untuk mendapatkan ping yang lebih baik.
Apabila kita mahu mengawal bot kita melalui kod, kita perlu mendaftarkan bot terlebih dahulu di bawah akaun Discord kami.
Untuk mendaftarkan bot, pergi ke portal pemaju Discord dan log masuk dengan akaun anda.
Selepas log masuk, anda sepatutnya dapat melihat papan pemuka. Mari buat aplikasi baru dengan mengklik butang aplikasi baru .
Create , Discord akan membuat aplikasi API.
Apabila permohonan telah dibuat, anda akan melihat gambaran keseluruhan aplikasi saya yang baru dicipta. Anda akan melihat maklumat seperti ID pelanggan dan rahsia pelanggan. Rahsia ini akan digunakan kemudian sebagai token kebenaran.
Apabila bot telah dibina, anda mendapat gambaran keseluruhan bot tersuai anda. Lihatlah bahagian token . Salin token kebenaran ini dan tuliskannya di suatu tempat, kerana kami memerlukannya kemudian untuk menyambung ke pengguna bot kami.
Langkah 3: Tentukan keizinan dan tambahkan bot ke pelayan
Navigasi ke bahagian oAuth2
di bawah menu tetapan . Di sini kita boleh menentukan skop untuk bot kami. Seperti yang kita hanya mahu mengaktifkan bot yang mudah, kita memilih pilihan
anda mungkin melihat bahawa URL kebenaran di bawah telah berubah sekarang. Walau bagaimanapun, kebenaran = 0 bahagian menunjukkan bahawa kita belum menetapkan kebenaran lagi.
Jika kita menatal lebih jauh, anda akan menemui bahagian
Akhir sekali, salin URL ini dan tampalnya dalam penyemak imbas web kegemaran anda. Anda akan mendapat gambaran keseluruhan yang meminta pelayan mana yang anda mahu tambah bot ke. Mari pilih Discord_playground kami yang baru dibuat.
PROVERIZE untuk menambah bot ke pelayan kami.
Jika anda ingin menyemak semula bahawa bot anda ditambah, pergi ke saluran
. Anda harus melihat mesej yang sama yang menunjukkan bahawa bot telah menyertai saluran.
Kejayaan!
Akhirnya, mari kita buat projek itu. Anda boleh mencari projek asas di GitHub. Sila klon repositori secara tempatan di mesin anda menggunakan klon git https://github.com/sitePoint-editors/discord-bot-sitePoint.
Untuk memasang kedua -dua kebergantungan, sila laksanakan pemasangan NPM di dalam folder projek.
Akhir sekali, untuk melengkapkan pemasangan, buat fail .env dalam akar projek. Tambahkan satu pemboleh ubah persekitaran yang dipanggil token ke fail seperti ini:
Langkah 5: Meneroka Discord.js
<span>TOKEN=my-unique-bot-token </span>mari kita lihat fail index.js yang terletak di akar projek:
Kami mula -mula memuatkan pembolehubah persekitaran yang telah kami tentukan melalui memerlukan konfigurasi dari fail .env. Ini membolehkan kita menggunakan pemboleh ubah token yang telah kami tentukan melalui process.env.token. Barisan terakhir coretan di atas menunjukkan bagaimana kami lulus token ke fungsi log masuk untuk mendapatkan akses ke bot yang kami buat.
<span>require('dotenv').config(); </span><span>const Discord = require('discord.js'); </span><span>const bot = new Discord<span>.Client</span>(); </span> <span>const TOKEN = process.env.TOKEN; </span> bot<span>.login(TOKEN); </span>Pembolehubah bot sebenarnya adalah pelanggan Discord kami di mana kami akan berinteraksi.
Dengar acara "Sedia"
Seterusnya, kita boleh mendengar acara. Pertama sekali, kami mendengar acara yang siap. Acara siap dipecat sebaik sahaja kami disambungkan ke bot:
Jika anda telah menggunakan token yang betul untuk log masuk ke bot, terminal anda harus mencetak nama bot bot.user.tag anda.
bot<span>.on('ready', () => { </span> <span>console.info(<span>`Logged in as <span>${bot.user.tag}</span>!`</span>); </span><span>}); </span>anda boleh memulakan bot dengan hanya melaksanakan nod index.js di terminal anda. Pastikan anda melaksanakan perintah ini dalam akar projek anda.
Jika bot dihubungkan dengan jayanya, anda harus melihat nama bot anda dicetak di terminal.
Selain acara
. Ini bermakna bot boleh membaca sebarang mesej yang dihantar ke saluran. Untuk mengikat kembali ke bahagian Kebenaran, ini adalah sebab yang tepat mengapa kita perlu memberi kebenaran bot untuk membaca sejarah mesej. Jika kita meneroka kod itu sedikit lebih jauh, anda lihat kita sedang mencari mesej dengan kandungan ping. Jika kita menerima mesej yang hanya mengandungi ping, bot balasan dengan pong. Selepas itu, kami menggunakan msg.channel.send untuk menghantar lagi pong ke saluran. Perhatikan perbezaan antara kedua -dua arahan: Cobalah untuk menjalankan bot dengan nod index.js dan hantar mesej ping ke saluran umum. Sahkan jika anda melihat hasil yang sama.
Lebih mudah menjadi mangsa kod spageti Pengendali arahan adalah pendekatan yang disokong oleh pakej Discord.js. Sebelum kita meneruskan, lihat Cawangan Lanjutan dengan Git Checkout Advanced. Cawangan ini memegang pelaksanaan pengendali arahan. Pertama, mari kita meneroka folder perintah. Folder ini memegang fail index.js yang mengeksport semua arahan yang akan kami tentukan. Untuk menjaga perkara yang mudah, kami hanya akan menentukan satu arahan, ping: berterusan, mari kita mengimport arahan ke dalam fail index.js. Perhatikan kami menentukan koleksi arahan pada bot Discord. Kami gelung ke atas semua arahan dan menambahnya satu demi satu ke koleksi Perintah. fungsi bot.commands.set menerima nama perintah dan objek perintah keseluruhan: Selepas itu, kita perlu mengeluarkan kita yang lain ... jika rantai dan menggantikannya dengan beberapa kod dinamik untuk mencari arahan yang betul yang kita mahu panggil: kita mula -mula cuba memecah kandungan mesej dengan ruang putih menggunakan .split ( / /). Kami menganggap item pertama dalam array Args ini adalah arahan kami. Untuk memeriksa sama ada perintah ada dalam koleksi kami, koleksi itu mendedahkan fungsi mempunyai (), yang hanya mengembalikan benar atau palsu. Jika arahan tidak wujud, kami mengembalikan respons kosong.
Dengan cara ini, anda boleh menyertai komuniti Discord SitePoint dengan pautan ini. Datang bercakap berteknologi dengan kami.
Debugging bot Discord anda melibatkan menggunakan pernyataan Console.log untuk mencetak maklumat mengenai keadaan dan tindakan bot. Anda juga boleh menggunakan alat penyahpepijatan Node.js seperti debugger terbina dalam atau alat luaran seperti debugger Visual Studio Code. Di samping itu, Perpustakaan Discord.js menyediakan peristiwa seperti 'debug' dan 'memberi amaran' bahawa anda boleh mendengar untuk mendapatkan maklumat lanjut mengenai apa yang dilakukan oleh bot. Bagaimana saya boleh menjadi tuan rumah Bot Discord saya? pada pelayan dan bukannya mesin tempatan anda. Anda boleh menggunakan penyedia hosting awan seperti Heroku, AWS, atau Google Cloud untuk ini. Penyedia ini membolehkan anda menjalankan bot anda 24/7, dan mereka sering menyediakan pangkalan data dan perkhidmatan lain yang boleh anda gunakan dengan bot anda. 🎜> Membuat bot Discord anda bertindak balas terhadap arahan tertentu melibatkan mendengar acara 'Mesej' dan kemudian menyemak jika kandungan mesej bermula dengan arahan tertentu. Anda boleh menggunakan kaedah 'StartSwith' untuk ini. Sekiranya mesej bermula dengan arahan, anda boleh melakukan tindakan tertentu. Saluran Suara melibatkan menggunakan bahagian 'suara' perpustakaan Discord.js. Anda boleh menggunakan kaedah 'JoinVoiceChannel' untuk membuat bot menyertai saluran suara, dan kemudian gunakan kaedah 'Play' untuk bermain audio. Audio boleh menjadi fail tempatan, aliran, atau url. Kelas 'Messageembed' di Perpustakaan Discord.js. Anda boleh membuat embed baru, menetapkan tajuk, keterangan, warna, imej, dan sifat lain, dan kemudian hantar menggunakan kaedah 'Mesej.Channel.Send'. Untuk mesej? <span>TOKEN=my-unique-bot-token
</span>
Untuk menambah arahan baru, kita perlu melanjutkan klausa jika kita ada dengan yang lain ... jika: <span>require('dotenv').config();
</span><span>const Discord = require('discord.js');
</span><span>const bot = new Discord<span>.Client</span>();
</span>
<span>const TOKEN = process.env.TOKEN;
</span>
bot<span>.login(TOKEN);
</span>
Katakan kita mahu menendang seseorang dengan menghantar mesej seperti! Kick @username. Jadi, pertama kita cari! Kick dalam kandungan mesej. Jika kita dapati mesej yang bermula dengan tendangan, kita boleh menyemak sama ada pengguna ditandai dalam mesej dengan msg.mentions.users property.
Langkah 6: Masalah dengan yang lain ... jika rantai
Seterusnya, mari kita bincangkan masalah dengan semua ini ... jika pernyataan. Sekiranya anda hanya mempunyai beberapa arahan yang ditakrifkan untuk mendengar dalam acara mesej, kod tersebut cukup mudah dibaca.
kod sukar dibaca
Folder Command
Seterusnya, mari kita lihat pelaksanaan perintah ping, yang pada dasarnya mengeksport objek yang mengandungi yang berikut:
<span>TOKEN=my-unique-bot-token
</span>
Mengimport Perintah
<span>require('dotenv').config();
</span><span>const Discord = require('discord.js');
</span><span>const bot = new Discord<span>.Client</span>();
</span>
<span>const TOKEN = process.env.TOKEN;
</span>
bot<span>.login(TOKEN);
</span>
bot<span>.on('ready', () => {
</span> <span>console.info(<span>`Logged in as <span>${bot.user.tag}</span>!`</span>);
</span><span>});
</span>
Memasang dan menyediakan bot Discord baru mungkin terasa hebat pada mulanya. Walau bagaimanapun, API yang ditawarkan oleh pakej Discord.js adalah mudah, dan laman web Discord memberikan contoh yang hebat.
Bagaimana saya boleh menambah lebih banyak fungsi ke bot Discord saya? Anda boleh menambah fungsi seperti menghantar mesej, membalas mesej, menyertai saluran suara, bermain audio, dan banyak lagi. Untuk menambah ini, anda perlu mendengar peristiwa dan kemudian melakukan tindakan berdasarkan peristiwa -peristiwa ini. Sebagai contoh, untuk membuat bot anda menghantar mesej, anda boleh menggunakan acara 'Mesej' dan kaedah 'Mesej.Channel.Send'.
bagaimana saya boleh debug bot Discord saya?
Membuat bot Discord anda berinteraksi dengan API lain yang melibatkan menggunakan perpustakaan 'mengambil' atau 'axios' untuk menghantar permintaan HTTP. Anda boleh menggunakan perpustakaan ini untuk mendapatkan data dari API lain dan kemudian gunakan data tersebut dalam bot anda. Contohnya, anda boleh membuat bot yang mengambil data cuaca dan menghantarnya sebagai mesej dalam saluran perselisihan.
Membuat Bot Discord Bot anda bertindak balas terhadap mesej melibatkan menggunakan kaedah 'Mesej.React'. Anda boleh lulus emoji ke kaedah ini, dan bot akan bertindak balas terhadap mesej dengan emoji itu. Anda boleh menggunakan emojis tersuai dengan lulus ID mereka, atau menggunakan emojis lalai dengan lulus watak Unicode mereka.
Bagaimana saya boleh membuat kesilapan mengendalikan bot saya? Jika ralat berlaku dalam blok cuba, blok tangkapan akan dilaksanakan. Acara 'Ralat' akan dipancarkan apabila ralat berlaku di perpustakaan Discord.js. Menggunakan perpustakaan pangkalan data seperti 'Mongoose' untuk MongoDB atau 'Sequelize' untuk pangkalan data SQL. Anda boleh menggunakan perpustakaan ini untuk menyambung ke pangkalan data, menentukan model, dan kemudian membuat, membaca, mengemas kini, dan memadam data.
Atas ialah kandungan terperinci Cara Membina Bot Perselisihan Pertama Anda Dengan Node.js. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!