Discord memiliki API yang sangat baik untuk menulis bot khusus, dan komunitas bot yang sangat aktif. Hari ini kita akan melihat bagaimana cara memulai membuat sendiri.
Anda akan memerlukan sedikit pengetahuan pemrograman untuk mengkodekan bot, sehingga tidak untuk semua orang, tapi untungnya ada beberapa modul untuk bahasa populer yang membuatnya sangat mudah dilakukan. Kami akan menggunakan yang paling populer, discord.js.
Pergilah ke portal bot Discord, dan buat aplikasi baru.
Anda harus membuat catatan ID Klien dan rahasia (yang harus Anda rahasiakan, tentu saja). Namun, ini bukan bot, hanya "Aplikasi." Anda harus menambahkan bot di bawah tab "Bot".
Buat catatan token ini juga, dan rahasiakan ini. Jangan, dalam keadaan apa pun, lakukan kunci ini ke Github. Bot Anda akan diretas dengan segera.
Untuk menjalankan kode Javascript di luar halaman web, Anda perlu Node. Unduh, instal, dan pastikan berfungsi di terminal (atau Command Prompt, karena semua ini harus bekerja pada sistem Windows). Perintah default adalah "node."
Kami juga merekomendasikan menginstal alat nodemon. Ini adalah aplikasi baris perintah yang memonitor kode bot Anda dan memulai ulang secara otomatis pada perubahan. Anda dapat menginstalnya dengan menjalankan perintah berikut:
npm i -g nodemon
Anda membutuhkan editor teks. Anda bisa menggunakan notepad, tetapi kami merekomendasikan Atom atau VSC.
Inilah "Hello World" kami:
const Discord = require ('discord.js'); const client = new Discord.Client (); client.on ('siap', () => console.log ('Masuk sebagai $ client.user.tag!');); client.on ('message', msg => if (msg.content === 'ping') msg.reply ('pong');); client.login ('token');
Kode ini diambil dari contoh discord.js. Mari kita hancurkan.
client.on ('siap')
blok akan menyala ketika bot dinyalakan. Di sini, itu hanya dikonfigurasi untuk mencatat namanya ke terminal.client.on ('message')
blok akan diaktifkan setiap kali pesan baru diposkan ke saluran mana pun. Tentu saja, Anda harus memeriksa konten pesan, dan itulah yang jika
pemblokiran tidak. Jika pesan hanya mengatakan "ping," maka itu akan membalas dengan "Pong!"Salin kode ini, tempelkan token Anda di bagian bawah, dan simpan sebagai index.js
dalam folder khusus.
Kepala ke terminal Anda, dan jalankan perintah berikut:
nodemon --memeriksa index.js
Ini memulai skrip, dan juga mengaktifkan debugger Chrome, yang dapat Anda akses dengan mengetik chrome: // inspect /
ke Chrome Omnibar dan kemudian membuka "devtools khusus untuk Node."
Sekarang, seharusnya hanya mengatakan "Masuk sebagai," tapi di sini saya telah menambahkan baris yang akan mencatat semua objek pesan yang diterima ke konsol:
Jadi apa yang membentuk objek pesan ini? Banyak hal, sebenarnya:
Terutama, Anda memiliki info penulis dan info saluran, yang dapat Anda akses dengan msg.author dan msg.channel. Saya merekomendasikan metode ini untuk menyimpan objek ke devtools Chrome Node, dan hanya melihat sekeliling untuk melihat apa yang membuatnya bekerja. Anda mungkin menemukan sesuatu yang menarik. Di sini, misalnya, bot mencatat balasannya ke konsol, jadi balasan bot itu memicu client.on ('message')
. Jadi, saya membuat spambot:
Catatan: Hati-hati dengan ini, karena Anda tidak benar-benar ingin berurusan dengan rekursi.
Bagian ini lebih sulit dari yang seharusnya. Anda harus mengambil URL ini:
https://discordapp.com/oauth2/authorize?client_id=CLIENTID&scope=bot
Dan ganti CLIENTID dengan ID klien bot Anda, temukan di tab informasi umum dari halaman aplikasi. Setelah ini dilakukan, Anda dapat memberikan tautan ke teman Anda agar mereka menambahkan bot ke server mereka juga.
Di luar pengaturan dasar, yang lain sepenuhnya terserah Anda. Tapi, ini tidak akan menjadi tutorial jika kita berhenti di dunia halo, jadi mari kita bahas beberapa dokumentasi, jadi Anda memiliki gagasan yang lebih baik tentang apa yang mungkin. Saya sarankan Anda membaca sebanyak mungkin, karena didokumentasikan dengan sangat baik.
Saya akan merekomendasikan penambahan console.log (klien)
ke awal kode Anda, dan melihat objek klien di konsol:
Dari sini, Anda bisa belajar banyak. Karena Anda dapat menambahkan bot ke beberapa server sekaligus, server adalah bagian dari Guilds
objek peta. Dalam objek itu adalah Guild individu (yang merupakan nama API untuk "server") dan objek-objek guild tersebut memiliki daftar saluran yang berisi semua info dan daftar pesan. API sangat dalam, dan mungkin perlu waktu untuk belajar, tetapi setidaknya mudah untuk mengatur dan memulai belajar.